xpath - using包含通配符

时间:2012-09-12 18:00:22

标签: xpath pattern-matching

我有以下内容,并试图看看是否有更好的方法。我知道它可以使用starts-with / contains来完成。我正在测试firefox 10,我认为它实现了xpath 2。+。

测试节点是

<a id="foo">
.
.
.
<a id="foo1">
.
<a id="foo2">

有没有办法使用通配符来获取foo1 / foo2节点..

这样的东西
//a[@id =* 'foo'] 

or 

//a[contains(@id*,'foo')] 

这会说,给我一个“a”,其中id以“foo”开头,但是有额外的字符......然后这将跳过带有“foo”的第一个节点

我以为我在这上面看过一个rticle,却找不到它!

我记得,文章指出xpath有一组运算符可用于指定字符串中给定模式的开始/结束。

感谢

2 个答案:

答案 0 :(得分:5)

使用

//a[@id[starts-with(., 'foo') and string-length() > 3]]

答案 1 :(得分:3)

不是通配符,但可能是您需要的:

//a[(@id!='foo') and starts-with(@id,'foo')]

请参阅W3C XPath spec