首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一次xpath.evalutaion调用中选择多个具有不同名称的节点

在一次xpath.evalutaion调用中选择多个具有不同名称的节点
EN

Stack Overflow用户
提问于 2017-03-20 21:02:42
回答 1查看 684关注 0票数 0

我想在一次xpath.evalutaion调用中选择多个具有不同名称的节点。我只知道如何选择一个同名的节点并获取其中的内容。与本例中一样,我获得了<rrm:indentifier>内容。

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 21:23:25

您可以使用*引用任何名称的元素,例如:

代码语言:javascript
复制
//ds:Link/ds:content/*

或者,如果您想在一个XPath中指定多个元素名称:

代码语言:javascript
复制
//ds:Link/ds:content/*[self::rrm:title|self::rrm:identifier|self::rrm:format]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42904331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档