Разделение уровня XML в соответствии с XPath - PullRequest
1 голос
/ 02 марта 2010

Можно ли разделить уровень документа XML с выражением XPath на список? У меня есть это, например:

<root>
  <test1 />
  <testX />
  <test2 />
  <test21 />
  <testX />
  <test3 />
</root>

Таким образом, при его запуске возвращается список с <test1 />, <test2 /><test21 /> и <test3 />.

Не обязательно только один узел между <testX />, может быть различное число.

Ответы [ 2 ]

2 голосов
/ 02 марта 2010

Найти первый элемент под корнем и первый элемент, который следует за каждым элементом «testX». Исключая те элементы, которые называются «testX».

(/root/*[1] | /root/*['testX' = name(preceding-sibling::*[1]))[name() != 'testX']

Некоторые ссылки MSDN в XPath:

0 голосов
/ 02 марта 2010
/root/*[not(self::testX)]

выберет

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