如何使用XPath和Java更新XML

沙什:

我有一个XML文档,以及该文档的XPath表达式。我必须在运行时使用XPath更新文档。

如何使用Java做到这一点?

以下是我的xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<PersonList>
    <Person>
        <Name>Sonu Kapoor</Name>
        <Age>24</Age>
        <Gender>M</Gender>
        <PostalCode>54879</PostalCode>
    </Person>
    <Person>
        <Name>Jasmin</Name>
        <Age>28</Age>
        <Gender>F</Gender>
        <PostalCode>78745</PostalCode>
    </Person>
    <Person>
        <Name>Josef</Name>
        <Age>232</Age>
        <Gender>F</Gender>
        <PostalCode>53454</PostalCode>
    </Person>
</PersonList>

我必须在下更改name和age的值//PersonList/Person[2]/Name

让·弗朗索瓦·科贝特(Jean-FrançoisCorbett):

使用setNodeValue首先,获取一个NodeList,例如:

myNodeList = (NodeList) xpath.compile("//MyXPath/text()")
           .evaluate(myXmlDoc, XPathConstants.NODESET);

然后设置例如第一个节点的值:

myNodeList.item(0).setNodeValue("Hi mom!");

更多示例,例如这里

如此处的其他两个答案以及您先前的问题中所述:从技术上讲,XPath并不是“更新” XML文档的方法,而只是一种在XML文档中定位节点的方法。但我想以上就是您想要的。

编辑:响应您的评论...您是否在询问完成DOM编辑后如何将DOM 写入 XML文件?如果是这样,下面是两个方法的示例:

http://www.java2s.com/Code/Java/XML/WriteDOMout.htm

http://download.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT4.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章