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 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析