我想在一次xpath.evalutaion调用中选择多个具有不同名称的节点。我只知道如何选择一个同名的节点并获取其中的内容。与本例中一样,我获得了<rrm:indentifier>内容。
String linkXPath = "/ds:dataSource/ds:artifact/ds:traceability/ds:links/ds:Link/ds:content/rrm:identifier/text()";
InputSource source = new InputSource(rootServicesResponse.getEntity().getContent());
NodeList attribute = (NodeList)(xpath.evaluate(linkXPath, source, XPathConstants.NODESET));XML
<ds:traceability>
<ds:links>
<ds:Link type="Decomposition">
<rrm:title>Parent Of</rrm:title>
<ds:linkType>
https://localhost:9443/rm/types/_cyuacfNmEeatIKybawF-9Q
</ds:linkType>
<ds:isParentLink>true</ds:isParentLink>
<ds:isChildLink>false</ds:isChildLink>
<rrm:relation>
https://localhost:9443/rm/resources/_qmYQMfNpEeatIKybawF-9Q
</rrm:relation>
<rrm:identifier>1</rrm:identifier>
<ds:content>
<rrm:title>test</rrm:title>
<rrm:identifier>1</rrm:identifier>
<rrm:description/>
<rrm:format>Text</rrm:format>
<ds:artifactFormat>Requirement</ds:artifactFormat>
</ds:content>
</ds:Link>
<ds:Link type="Decomposition">
<rrm:title>Parent Of</rrm:title>
<ds:linkType>
https://localhost:9443/rm/types/_cyuacfNmEeatIKybawF-9Q
</ds:linkType>
<ds:isParentLink>true</ds:isParentLink>
<ds:isChildLink>false</ds:isChildLink>
<rrm:relation>
https://localhost:9443/rm/resources/_RQWuYQJXEeeQ67tlGaw8LA
</rrm:relation>
<rrm:identifier>12</rrm:identifier>
<ds:content>
<rrm:title>kest</rrm:title>
<rrm:identifier>12</rrm:identifier>
<rrm:description/>
<rrm:format>Text</rrm:format>
<ds:artifactFormat>Requirement</ds:artifactFormat>
</ds:content>
</ds:Link>
</ds:links>
</ds:traceability>是否有一种方法可以选择其中的每个元素,例如,每个<ds:content>
发布于 2017-03-20 21:23:25
您可以使用*引用任何名称的元素,例如:
//ds:Link/ds:content/*或者,如果您想在一个XPath中指定多个元素名称:
//ds:Link/ds:content/*[self::rrm:title|self::rrm:identifier|self::rrm:format]https://stackoverflow.com/questions/42904331
复制相似问题