2011-12-21 93 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