我正在尝试使用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 “
查询出于某种原因将所有“ - ”字符替换为“:”
我做错了什么?
的屏幕截图答案 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行)。
但副作用是,如果您的输入包含-
个字符,则它们都会转换为:
。
您可能需要与网站作者联系并告知此事。