Выражение XPath для выбора узлов между определенной последовательностью предыдущих и последующих узлов - PullRequest
0 голосов
/ 01 октября 2010

У меня есть следующий структурированный XML-файл:

   <w:document>
      <w:body>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:instrText/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:instrText/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
     </w:body>
  </w:document>

и я отчаянно пытаюсь найти выражение XPath , чтобы выбрать все узлы <w:t>, которые находятся между двумя узлами <w:instrText> Узлы <w:t> в основном появляются свободно вокруг документа XML, но меня интересуют только те, которые находятся между двумя узлами <w:instrText>.

Любая помощь с благодарностью.

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Я отчаянно пытаюсь найти выражение XPath, чтобы выбрать все <w:t> узлы, которые находятся между двумя <w:instrText> узлами

/w:document/w:body/w:p/w:r/w:instrText/following::w:t
      [count(.|/w:document/w:body/w:p/w:r/w:instrText/preceding::w:t) =
       count(/w:document/w:body/w:p/w:r/w:instrText/preceding::w:t)]

Узел выражения пересечения

1 голос
/ 01 октября 2010

Разве это не так просто, как: //x/t?

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