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日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题