XPATH - 如何根据其他标记的值选择1个标记的值

问题描述:

以下是XML。现在我想选择所有/ Home/Coverage/Coverage/Identifier/CoverageName ='WorkersCompensation'作为值的/ Home/Identifier/HomeNumber值。我已经在类似的问题在这个论坛上尝试过一些答案,但似乎没有工作。我在构建XPATH表达式时需要帮助。XPATH - 如何根据其他标记的值选择1个标记的值

<Home> 
     <Identifier> 
      <HomeNumber>1</HomeNumber> 
     </Identifier> 
<Coverages> 
      <Coverage busStatus="Active"> 
      <Identifier> 
       <CoverageName>PersonalLiability</CoverageName> 
      </Identifier> 
      </Coverage> 
      <Coverage> 
      <Identifier> 
       <CoverageName>WorkersCompensation</CoverageName> 
      </Identifier> 
      <Detail> 
       <Name>NumberOfInServants</Name> 
       <Value> 
       <Integer>1</Integer> 
       </Value> 
      </Detail> 
      </Coverage> 
     <covergaes> 
</Home> 
<Home> 
. 
. 
. 
</Home> 

你几乎自己写它:

/*/Home[Coverages 
      /Coverage 
      /Identifier 
       /CoverageName 
     = 'WorkersCompensation'] 
     /Identifier 
     /HomeNumber 

注意:我希望一些根元素,当然...

尝试

/*/Home[Coverages/Coverage/Identifier/CoverageName='WorkersCompensation']/Identifier/HomeNumber 

我不知道一个100%,如果它工作或没有,我真的没有时间来测试它。如果有效,我会在后面解释为什么我给出了这个答案。

+0

@戴夫:我会考虑删除我的回答如果你说了什么关于这是一个**绝对表达式** ... – 2011-02-07 17:20:30