2015-10-16 19 views
0

我想解析下面的XML使用XPath由於某些原因它放置冒號而不是破折號,我沒有控制源提要,並希望得到原始URL。Xpath結果放置冒號而不是破折號

這裏是XML:

<entry> 
    <link href="http://www.iol.co.za/polopoly_fs/iol-news-oct29-sa-justice-read-only-1.1736573!/image/2509245336.jpg_gen/derivatives/box_501/2509245336.jpg" rel="enclosure" type="image/jpg"/> 
</entry> 

這裏是XPath表達式:

/entry/link[@rel="enclosure"]/@href 

結果是

HREF =「http://www.iol.co .za/polopoly_fs/iol:news:oct29:sa:justice:只讀:1.1736573!/image/2509245336.jpg_gen/derivatives/box_501/2509245336.jpg「

我在哪裏期待:http://www.iol.co.za/polopoly_fs/iol-news-oct29-sa-justice-read-only-1.1736573!/image/2509245336.jpg_gen/derivatives/box_501/2509245336.jpg

查詢是出於某種原因全部更換「 - 」與字符「:」

我在做什麼錯?從http://codebeautify.org/Xpath-Tester

Screenshot from http://codebeautify.org/Xpath-Tester

+1

好奇。你如何運行你的xpath?什麼處理器?什麼編程語言? – Parfait

+0

我實際上是在drupal中使用它作爲feed導入的一部分,但我也使用http://codebeautify.org/Xpath-Tester得到了這個結果 –

+1

這個XPath擺脫了「href」字符串(/ entry/link [@的rel = 「外殼」]/@ HREF)'。但是,您正在使用的xpath處理器可能會被竊聽,因爲此xpath的結果將用破折號「 - 」替換所有冒號「:」(與原始問題相反)。使用其他處理器可以給出正確的結果(例如http://www.freeformatter.com/xpath-tester.html#ad-output) – FriedSaucePots

回答

1

你的XPath

屏幕截圖是好的,但似乎該網站正在做一些奇怪的事情做輸入。

http://codebeautify.org/js/viewer/allviewer.js,線1607,其中,所述XML輸入被存儲在變量x,並且所有:替換到- XPath表達式求值之前:

var x = $("#xmlString").val(); 
var pattrn = /:/g; 
var pattrn1 = /-/g; 

x = x.replace(pattrn, '-'); 
var xml = $.parseXML(x); 

在XPath後來導致反向是完成(例如第1661行,1667行)。

但副作用是,如果您的輸入包含-個字符,它們全部轉換爲:

您可能想聯繫網站作者並通知有關此信息。

+0

謝謝我不會再使用該網站。 –