以前的兄弟姐妹的Xpath

时间:2015-12-11 11:22:03

标签: xml xpath

我正在尝试从具有如下所示结构的巨大xml中检索<value>节点的文本。如果用户知道节点<name>的文本,是否还要写一个通用的xpath查询?

<ReferencesServiceQualificationItem> 
  <ItemInvolvesProduct> 
    <ID>CPI000123456854</ID>  
    <DescribedBy> 
      <value>Yes</value>  
      <Characteristic> 
        <name>POTS Interconnect Match</name> 
      </Characteristic> 
    </DescribedBy>  
    <DescribedBy> 
      <value>null</value>  
      <Characteristic> 
        <name>Remediation Date</name> 
      </Characteristic> 
    </DescribedBy> 
  </ItemInvolvesProduct> 
</ReferencesServiceQualificationItem>

2 个答案:

答案 0 :(得分:1)

这是一个可能的XPath,假设用户知道name,例如'POTS Interconnect Match'

//DescribedBy[Characteristic/name='POTS Interconnect Match']/value

基本上上面的XPath搜索DescribedBy元素Characteristic/name子等于"POTS Interconnect Match",然后返回相应的value元素。

<强> xpathtester demo

输出

<value>Yes</value>

答案 1 :(得分:0)

假设您想要前面的&#34; DescribedBy&#34;节点,您有当前节点的文本:

//DescribedBy[Characteristic/name = 'Remediation Date']/preceding-sibling::DescribedBy[1]/value