Python xlxml xpath 表达式匹配属性中的子串
假设我有下面这个XML
<root>
<element class="Page" style="background: url(/images/RlEguQY3_ghsdr.png?1324483033) repeat left top;" />
<element class="User" />
<element class="Image" src="/images/bg.png" />
</root>
我想要一个xpath表达式,它可以做到以下两点: 1) 找到所有在style属性中包含/images的元素 并且 2) 找到所有在src属性中包含/images的图片元素
任何帮助都非常感谢
谢谢
3 个回答
1
我在找一个XPath表达式,它可以做到以下两点:1) 匹配所有在
style
属性中包含/images
的元素。
直接翻译成XPath:
/*/element[contains(@style, '/images')]
. . .
...
还有 2) 匹配所有在
src
属性中包含/images
的Image
元素。
在提供的XML文档中没有Image
元素。你可能是想要的是:element
元素,它的class
属性值为"Image"
:
/*/element[@class='Image'][contains(@src, '/images')]
把上面两个XPath表达式结合起来,得到这个:
/*/element
[contains(@style, '/images')
or
@class='Image' and contains(@src, '/images')
]
我觉得对于上面的第二个要求,你实际上是想要src
属性的值以"/images"
开头。如果是这样,更准确的XPath表达式是:
/*/element
[contains(@style, '/images')
or
@class='Image' and starts-with(@src, '/images')
]
10
//element[contains(@style, '/images') or (@class='Image' and contains(@src, '/images'))]
(或者类似的东西)应该可以做到这一点。