【发布时间】:2014-06-30 01:39:00
【问题描述】:
下面有一个现有的 XML 文件,我想使用 Java 写入该文件。我正在尝试在其中添加另一个带有文件和版本 ID 的模式元素。我正在做的是从最后一个模式元素中提取 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 来获取最后一个资源节点。一旦我得到它,我就会在其中附加一个新的模式节点,其中包含我的新文件和版本 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);
【问题讨论】:
-
请注意,简单地附加到一个 XML 文件不会给你一个有效的 XML 文件,因为你需要只有一个根元素。您需要读入旧版本,进行更改,然后将其写回,无论是流式传输还是通过 DOM 操作。
-
好吧,这就是我目前正在做的事情
标签: java xml parsing dom append