XPath:过滤属性名称和属性值的一部分

时间:2017-01-01 08:59:14

标签: xml xpath

新年快乐!!

我想找到任何节点

  • 每个人都在文档中

  • 具有特定名称(例如val)

  • 具有以特定字符串(例如p)和

  • 开头的属性
  • 这些属性值与特定规则匹配(例如> 5)

我试过

//val/@*[starts-with (name(),'p')]

在没有最后一个要求(attr-value)的情况下完成所有工作。

我想到像

这样的东西
//val/@*[starts-with (name(),'p') and val()>5]

但我不知道访问属性值的函数。

任何帮助?谢谢!

克里斯

1 个答案:

答案 0 :(得分:2)

您正在寻找点(.),它是对当前上下文节点的引用:

//val/@*[starts-with(name(),'p') and .>5]

<强> demo

输入XML:

<root>
    <val>foo</val>
    <val p="9">bar</val>
    <val p="4">baz</val>
</root>

输出

p="9"