我有以下xml文件:
<?xml version='1.0' encoding='utf-8' ?>
<osm>
<node id="25779111" lat="50.03342" lon="5.461545"/>
<node id="25779112" lat="50.03304" lon="5.814"/>
<node id="25779119" lat="50.03395" lon="5.8255"/>
<tag k="maxspeed" v="30"/>
<tag k="maxspeed:zone" v="yes"/>
<ele k="maxspeed:zone" v="60"/>
我回顾了一些帖子,知道如何使用xpath更新或更改xml文件中的值,并idid以下内容:
for (int i = 1 ; i <= 2; i++) {
String expr0 = "//node[@lat='53.0334062'][@lon='8.8461545']/following-sibling::tag["+i+"]/@v";
xPath.compile(expr0);
Node s = (Node) xPath.evaluate(expr0, document, XPathConstants.NODE);
System.out.println(s);
s.setNodeValue("999");
}
但是当我检查xml文件时,我希望看到写入的更改,但没有变化。 请告诉我如何正确使用xPath更改xml文件中的值。
答案 0 :(得分:0)
您需要将文档写回磁盘。以下是:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
String filePath = "path/to/new/file.xml";
StreamResult streamResult = new StreamResult(new File(filePath));
transformer.transform(source, streamResult);
此处提供更多帮助:http://download.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT4.html
希望这会有所帮助。 :)