用xpath替换对象列表中的值?

时间:2012-12-05 11:14:39

标签: java xml xpath

xpath是否能够替换xml doc的值?

以下获取所有名称元素,但我如何替换它们?

<accounts>
<account>
<name>Johndoe1<name>
<account>
<account>
<name>Johndoe2<name>
<account>
</account>

XPathExpression fax = xpath.compile("/accounts/account/name")
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
    System.out.println(nodes.item(i).getNodeValue()); 
}

2 个答案:

答案 0 :(得分:0)

XPath仅识别文档中的节点。您必须使用DOM api删除这些元素。有关如何在遍历NodeList时删除元素的详细信息,请参阅here

答案 1 :(得分:0)

  

xpath是否能够替换xml doc的值?

不,XPath是XML文档的查询语言。因此,它只从XML文档中提取节点和数据,但不能改变(添加,替换,删除,节点)XML文档。

当处理XML文档导致创建另一个与原始XML文档不同的XML文档时,这称为 XML转换。 XSLT是一种专门为XML转换而设计的语言,是这种处理的最自然选择。