fish5821 2022-09-02 16:47 采纳率: 50%
浏览 65
已结题

关于#XML#的问题,如何解决?

我每天都需要编辑XML文档,需要把我们订单的客户信息复制粘贴到以下的固定格式,请问有没有XML编辑器,可以根据我们订单的客户的信息,自动完成这个任务,需要自动替换的内容有,TransactionDate,EmailAddress,UserName,ExternalId,Name,Price,谢谢各位!

<Interaction>
            <TransactionDate>2022-08-22T10:43:12.000</TransactionDate>
            <EmailAddress>525d@outlook.com</EmailAddress>
            <UserName>Sam</UserName>
            <Locale>en_US</Locale>
            <DeploymentZone>main_site</DeploymentZone>
            <Products>
                <Product>
                    <ExternalId>4545157</ExternalId>
                    <Name>Portable Tabletop Propane Gas Grill</Name>
                    <Price>118.19</Price>
                </Product>
            </Products>
        </Interaction>

  • 写回答

4条回答 默认 最新

  • Lin_Miao_09 2022-09-02 19:48
    关注

    这个很简单,我粗略写了个例子。
    每天把需要转换的文件,放在一个文件夹下,直接批量处理。同时也打印到控制台中。
    如果觉得我的方法可以,我可以将源码发给你。

    public class FileTool {
    
      private static String mode =
          "<Interaction>\n"
              + "    <TransactionDate>#1#</TransactionDate>\n"
              + "    <EmailAddress>#2#</EmailAddress>\n"
              + "    <UserName>#3#</UserName>\n"
              + "    <Locale>en_US</Locale>\n"
              + "    <DeploymentZone>main_site</DeploymentZone>\n"
              + "    <Products>\n"
              + "        <Product>\n"
              + "            <ExternalId>#4#</ExternalId>\n"
              + "            <Name>#5#</Name>\n"
              + "            <Price>#6#</Price>\n"
              + "        </Product>\n"
              + "    </Products>\n"
              + "</Interaction>";
    
      public static void main(String[] args) {
        List<File> files = FileUtil.loopFiles("E:\\Users\\LIN\\Desktop\\file\\Excel\\");
        if (CollUtil.isEmpty(files)) {
          return;
        }
        for (File file : files) {
          ExcelReader reader = ExcelUtil.getReader(file);
          List<Map<String, Object>> readAll = reader.readAll();
          String testStr = mode;
          testStr =
              testStr
                  .replaceAll("#1#", readAll.get(0).get("TransactionDate").toString())
                  .replaceAll("#2#", readAll.get(0).get("EmailAddress").toString())
                  .replaceAll("#3#", readAll.get(0).get("UserName").toString())
                  .replaceAll("#4#", readAll.get(0).get("ExternalId").toString())
                  .replaceAll("#5#", readAll.get(0).get("Name").toString())
                  .replaceAll("#6#", readAll.get(0).get("Price").toString());
          System.out.println(testStr);
          System.out.println("==========================");
          File newFlie =
              FileUtil.appendUtf8String(
                  testStr, file.getPath().replaceAll("Excel", "XML").replaceAll("xlsx", "xml"));
        }
      }
    }
    

    img

    img

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 已采纳回答 9月2日
  • 创建了问题 9月2日

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?