首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java写到xml文件的末尾

问使用java写到xml文件的末尾
EN

Stack Overflow用户
提问于 2014-05-12 23:41:33
回答 1查看 314关注 0票数 0

我在下面有一个现有的XML文件,我想使用Java将其写入。我正在尝试添加另一个包含file和version-id的模式元素。我所做的是从最后一个pattern元素中提取file和version-id的值,然后增加这些值的版本号。我已经成功地做到了这一点,并设置了新文件和版本值。我现在只需要将它们添加到xml中的一个新的pattern元素下。

代码语言:javascript
复制
  <?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来获取最后一个资源节点。一旦我得到它,我就向它追加一个新的pattern Node,里面有我的新file和version-id标签。

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2014-05-12 23:49:37

我会使用XML库和alises来将XStream映射到java类,然后再映射回来。首先,创建一个与XML匹配的java类,例如:

代码语言:javascript
复制
class JnlpVersions {
  Resource resource;
}

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

class Pattern {
  String file;
  String versionId;
}

然后将现有的xml文件加载到JnlpVersion的一个实例中。获取它的resource并添加一个新的Pattern。然后,使用XStream将实例保存到一个新的xml文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23613320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档