簡體   English   中英

使用Java寫入xml文件的末尾

[英]Write to end of xml file using java

我下面有一個要使用Java編寫的XML文件。 我正在嘗試添加另一個模式元素,其中包含文件和version-id。 我正在做的是從最后一個pattern元素中提取file和version-id的值,然后增加這些值的版本號。 我已經能夠成功做到這一點並設置新文件和版本值。 我現在只需要將它們添加到新模式元素下的xml中。

  <?xml version="1.0" encoding="UTF-8"?>
    <jnlp-versions>
      <resource>
        <pattern>
            <file>somejar_2_100_1_client.jar</file>
            <version-id>2.100.1</version-id>
        </pattern>
        <pattern>
            <file>somejar_2_100_2_client.jar</file>
            <version-id>2.100.2</version-id>
        </pattern>
        <name>jarclient.jar</name>
       </resource>
    </jnlp-versions>

*****編輯:

我使用xPath來獲取最后一個資源Node。 一旦知道了這一點,我便在其中附加了一個新的模式節點,其中包含我的新文件和version-id標簽。

Node resourceNode = (Node)xPath.evaluate("/jnlp-versions/resource[last()]",doc.getDocumentElement(), XPathConstants.NODE);

    Element fileNode = doc.createElement("file");
    Element versionNode = doc.createElement("version-id");

    fileNode.setTextContent(newFileName);
    versionNode.setTextContent(newVersion);

    Element patternNode = doc.createElement("pattern");
    patternNode.appendChild(fileNode);
    patternNode.appendChild(versionNode);
    resourceNode.appendChild(patternNode);

我將使用XStream庫和別名將XML映射到Java類並返回。 首先,創建一個與XML相匹配的Java類,例如:

class JnlpVersions {
  Resource resource;
}

class Resource {
 String name;
 Set<Pattern> patterns;
}

class Pattern {
  String file;
  String versionId;
}

然后將現有的xml文件加載到JnlpVersion的實例中。 獲取其resource並添加一個新的Pattern 然后,使用XStream將實例保存到新的xml文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM