2011-12-21 102 views
4

匹配字符串比方说,我有以下XML蟒蛇xlxml XPath表达式的属性

<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)具有在风格/图像所有元素相匹配属性 和 2)具有在SRC /图像属性

所有图片元素匹配0

任何帮助非常感谢

感谢

+0

您已经使用的XPath表达式是什么样的?当您尝试使用您自己设计的XPath表达式时,您会看到什么样的意外结果? – 2011-12-21 16:19:00

+0

事实是,我没有任何东西 – Thomas 2011-12-21 16:20:32

回答

7
//element[contains(@style, '/images') or (@class='Image' and contains(@src, '/images'))] 

(或类似的东西)应该这样做。

+0

优秀的伴侣。谢谢 – Thomas 2011-12-21 17:20:00

1

我寻找一个xpath表达式,其1)的所有元素匹配 在style属性

直接转换成以XPath的具有/images

/*/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') 
    ] 
+0

谢谢迪米特雷。非常好的描述 – Thomas 2011-12-22 07:17:30

+0

@Thomas:不客气 – 2011-12-22 12:56:47