如何在Xpath上使用通配符

时间:2017-05-19 01:18:21

标签: html bash xpath wildcard

    cover: $main//*[has-class("aligncenter wp-image-121146 size-large")]//img
    cover: $main//img[has-class("aligncenter wp-image-121146 size-large")]

字符串有一个静态部分 aligncenter wp-image - 和一个动态部分" "我想在这里做的是连接所有的posibles" "

bash中的

是这样的:

"aligncenter wp-image-"*

如何在Xpath中实现?

2 个答案:

答案 0 :(得分:0)

我认为这会奏效:

'//E[@class="aligncenter" and contains(concat(" ", @class, "wp-image-"), " C ")]'

这可能会更加强大,我们已经尝试了很多and,看起来您希望这些课程符合这个顺序:

'//E[contains(concat(" ", @class, "aligncenter wp-image-"), " C ")]'

我还没有测试过它,无论哪种方式,这都应该对你有所帮助:

https://gist.github.com/glenpierce/400d5b569094b902f06789d80757454e

答案 1 :(得分:0)

没有足够的信息来为这个问题提供精确的XPath解决方案,因为您没有提供示例XML / HTML,并且两个尝试的XPath表达式(如果它们实际上都是)都是无效的。

要回答标题,你不能在XPath 1.0中使用那样的wildcalrd,这是XPath中使用最广泛的版本。但您可以使用contains()starts-with()功能。后者似乎更适合这种特殊情况。例如,以下XPath返回文档中的所有img元素,其中class属性值以子字符串'aligncenter wp-image-'开头:

//img[starts-with(@class, 'aligncenter wp-image-')]

<强> demo