假设我有以下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)匹配样式属性中包含 / images 的所有元素 和 2)匹配 src 属性中 / images 的所有图像元素
任何帮助非常感谢
由于
答案 0 :(得分:9)
//element[contains(@style, '/images') or (@class='Image' and contains(@src, '/images'))]
(或类似的东西)应该这样做。
答案 1 :(得分:1)
我正在寻找一个xpath表达式,其中1)匹配所有元素 在
中有/images
属性style
直接翻译为XPath :
/*/element[contains(@style, '/images')]
。 。
...
和2)匹配
Image
中/images
的所有src
元素 属性
提供的XML文档中没有Image
个元素。可能你的意思是:element
元素的class
属性值为"Image"
:
/*/element[@class='Image'][contains(@src, '/images')]
结合在一起,上面的两个XPath表达式给出了:
/*/element
[contains(@style, '/images')
or
@class='Image' and contains(@src, '/images')
]
在我看来,对于您上面的第二个要求,您实际上希望src
属性的值实际 以 {{1}开头}。如果是这样,则更精确的XPath表达式为:
"/images"
答案 2 :(得分:0)
您需要使用predicates,您的谓词表达式将使用contains函数。 union operator也可能派上用场。