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

时间:2011-02-07 17:08:00

标签: java xpath

这是XML。现在我想选择具有/ Home / Coverages / Coverage / Identifier / CoverageName ='WorkersCompensation'作为值的所有/ Home / Identifier / HomeNumber值。我在这个论坛上尝试过类似问题的答案,但似乎没有用。我需要帮助构建XPATH表达式。

<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>

2 个答案:

答案 0 :(得分:5)

尝试

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

我不确定它是否有效且我没有时间测试它。如果它有效,我会发布一个解释,为什么我稍后给出了这个答案。

答案 1 :(得分:4)

你几乎是自己写的:

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

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