我需要从这个 xml 文档中获取一些值:
<node id="A." label="General Literature">
<isComposedBy>
<node id="A.0" label="GENERAL">
<isComposedBy>
<node label="Biographies/autobiographies"/>
<node label="Conference proceedings"/>
<node label="General literary works (e.g., fiction, plays)"/>
</isComposedBy>
</node>
<node id="A.1" label="INTRODUCTORY AND SURVEY"/>
<node id="A.2" label="REFERENCE (e.g., dictionaries, encyclopedias, glossaries)"/>
<node id="A.m" label="MISCELLANEOUS"/>
</isComposedBy>
</node>
在Java中,我如何只选择具有属性id
和label
的节点,然后获取这些属性的值?
我尝试过使用以下表达式的 XPath:
XPathExpression expr = path.compile("//*/@id | /@label");
但这并没有返回我想要的。
最佳答案
使用//node[@id and @label]
将获取所有具有id
和label
的node
元素> 属性。然后您需要循环节点以获取它们的属性值。使用 DOM 的示例:
for(int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
NamedNodeMap attributes = node.getAttributes();
System.out.println(attributes.getNamedItem("id").getTextContent());
System.out.println(attributes.getNamedItem("label").getTextContent());
}
关于java - 从 XPath 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222322/