XPATH - Как выбрать значение 1 тега на основе значения другого тега - PullRequest
0 голосов
/ 07 февраля 2011

Вот XML. Теперь я хочу выбрать все значения / Home / Identifier / HomeNumber, которые имеют / Home / Coverages / Coverage / Identifier / CoverageName = 'WorkersCompensation' в качестве значения. Я попробовал некоторые ответы на этом форуме для похожих вопросов, но, похоже, не работает. Мне нужна помощь в создании выражения 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 ]

5 голосов
/ 07 февраля 2011

Попробуйте

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

Я не уверен на 100%, работает это или нет, и у меня нет времени, чтобы проверить это Если это сработает, я опубликую объяснение, почему я дал этот ответ позже.

4 голосов
/ 07 февраля 2011

Вы почти написали это сами:

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

Примечание : Конечно, я ожидал бы некоторый корневой элемент ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...