Xpath结果放置冒号而不是破折号

时间:2015-10-16 20:35:28

标签: xml xpath xml-parsing

我正在尝试使用XPath解析以下XML,因为它放置了冒号而不是破折号,我无法控制源Feed并希望获得原始URL。

这是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:read:only: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 个答案:

答案 0 :(得分: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行)。

但副作用是,如果您的输入包含-个字符,则它们都会转换为:

您可能需要与网站作者联系并告知此事。