XmlDataSource.XPath, выберите отдельные строки - PullRequest
1 голос
/ 29 апреля 2011

Мне нужно выбрать отдельные строки из данных XML с первичным ключом из 2 столбцов, таким как col1 и col2:

<data>
  <col1>X</col1>
  <col2>X</col2>
  <col3>X</col3>
</data>
<data>
  <col1>X</col1>
  <col2>X</col2>
  <col3>X</col3>
</data>

Я натолкнулся на функцию «предыдущий брат», но не смог найти хорошего учебника.Как я могу выбрать разные col1 и col2?Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 30 апреля 2011

Вы не можете группировать по сложным ключам (кроме одного значения узла) только с выражением XPath 1.0.

Вы можете сгруппировать по одному ключу, а затем по другому, итерируя с вашим основным языком по этому результату выражения XPath:

/*/data[not(col1 = ../preceding-sibling::data/col1)]

И после регистрации переменной $col1 (или замены ее значения в выражении) на col1 используйте это:

/*/data[col1 = $col1][not(col2 = ../preceding-sibling::data[col1 = $col1]/col2)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...