使用包含()的XPath count()

时间:2011-12-15 00:33:55

标签: xml xpath

我正在使用以下(次优)XML:

<a>
  <b>
    <c>X:1 Y:0</c>
    <c>X:1 Y:0</c>
    <c>X:2 Y:0</c>
  </b>
  <b>
    <c>X:1 Y:0</c>
    <c>X:2 Y:0</c>
  </b>
</a>

我正在尝试使用XPath来计算内容包含<c>的{​​{1}}个节点的数量:

X:1

但是,这会返回错误,而不是返回预期的count(contains(/a/b/c, 'X:1')) 计数。

我做错了什么?

2 个答案:

答案 0 :(得分:8)

这不是您使用contains()的方式。尝试

count(/a/b/c[contains(., 'X:1')])

答案 1 :(得分:3)

可能效率更高(如果提供的XML文档中显示的属性不是偶然的):

count(/a/b/c[starts-with(., 'X:1')])