【发布时间】:2015-12-04 11:28:41
【问题描述】:
我正在尝试基于 XPATH 操作一些基于 XML 的文件。使用 DOM。但是我在使用复杂的 XPath 时遇到了问题。
基本上我需要的是更改电子邮件为 xyz@gmail.com 的人名 其中 XPath 是 //person[email='xyz@gmail.com']/name
<?xml version="1.0" encoding="UTF-8"?>
<details>
<person>
<name>batman</name>
<email>abc@yahoo.com</email>
</person>
<person>
<name>spiderman</name>
<email>xyz@gmail.com</email>
</person>
<person>
<name>tintin</name>
<email>pqr@gmail.com</email>
</person>
</details>
我目前的实现如下
Node nodeXpath = (Node) xPath.evaluate(<<xpath>>,document.getDocumentElement(), XPathConstants.NODE);
Element element = document.getDocumentElement();
Node tatgetNode = document.importNode(nodeXpath, true);
element.getElementsByTagName(tatgetNode.getNodeName()).item(0).setTextContent("BatMan");
问题是,如果我使用 tagName 找到元素,它会返回 NodeList,其中包含与“名称”匹配的所有节点。
谁能指出我如何使用 DOM 修改基于 XPath 的 XML 内容。
谢谢。
【问题讨论】: