XmlDataSource.XPath,选择不同的行

时间:2011-04-29 18:36:50

标签: asp.net xml xpath

我需要从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>

我遇到了“previous-sibling”功能,但找不到任何好的教程。我怎样才能选择不同的col1和col2?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

您不能使用仅XPath 1.0表达式的复杂键(除一个节点值之外)进行分组。

您可以按一个键进行分组,然后使用您的宿主语言通过此XPath表达式结果进行迭代:

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

注册$col1变量(或将其在表达式中的值替换为col1)后,请使用:

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