【发布时间】:2014-07-10 13:22:37
【问题描述】:
我有一个看起来像的 xml
<?xml version="1.0"?>
<company>
<staff>
<firstname>John</firstname>
<lastname>Player</lastname>
<nickname>JP</nickname>
<salary>1000</salary>
</staff>
<staff>
<firstname>Peter</firstname>
<lastname>Shaw</lastname>
<nickname>PS</nickname>
<salary>2000</salary>
</staff>
</company>
只有当名字是 Peter 时我才需要选择,即我的 o/p 应该是:
<staff>
<firstname>Peter</firstname>
<lastname>Shaw</lastname>
<nickname>PS</nickname>
<salary>2000</salary>
</staff>
我正在使用 XPath,示例代码如下所示:
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("./company[staff/firstname = 'Peter']");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
System.out.println("Print " + result); //comes as com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList@ef0cdb
NodeList nodes = (NodeList) result;
System.out.println("Size"+ nodes.getLength()); // comes as 0
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
请提供指导
【问题讨论】:
标签: java xml xpath xml-parsing