使用jQuery选择xml子元素
问题描述:
是否可以通过使用子元素的值进行搜索来查找xml元素?使用jQuery选择xml子元素
所以对于XML如:
<route>
<name>Lakeway</name>
<abrv>LAKE</abrv>
<eta>
<time>00:30</time>
<dest>MAIN</dest>
</eta>
</route>
如果我只有abrv的价值,我将如何解析XML,以便在ETA获得标签的子元素?
这是可以与jQuery没有循环通过每个元素和比较值定义的变量?还是有更好的方法来做到这一点?
编辑:
我想解析从另一个域的XML饲料。我不确定是否可以使用xmlParse函数来实现,或者我需要使用jQuery的Ajax函数?
答
也许是这样的:
var xmlString = "<route><name>Lakeway</name><abrv>LAKE</abrv><eta><time>00:30</time><dest>MAIN</dest></eta></route>",
xmlDoc = $.parseXML(xmlString),
$xml = $(xmlDoc),
$abrv = $xml.find("abrv").text() == "LAKE" ? $xml.find("abrv") : false;
var time = $abrv.next().children("time").text();
var dest = $abrv.next().children("dest").text();
alert(time + " " + dest);
http://jsfiddle.net/jensbits/UH2m5/
希望,这可以让你开始。
答
您可以使用contains
筛选器根据此值筛选节点。
喜欢的东西,
$(xml).find('abrv:contains(LAKE) + eta > *')
将返回一个jQuery对象与示例文档的两个元素。
<time>00:30</time>
<dest>MAIN</dest>
这是example。
我怎样才能用这个外部的XML文件?这就是我正在寻找的东西。 – simon
您将需要使用另一种方法带入xml。请参阅http://stackoverflow.com/questions/1292486/why-cant-i-load-an-external-resource-from-jquery-load-method –
好的,所以我使用了一个简单的代理来获取XML,但是我还有另一个问题。使用parseXML函数和使用$ .get ajax函数有什么不同?因此,如果不是声明一个xml字符串,而是使用$ .get来获取xml,我应该能够使用与上面概述的相同的选择器吗? – simon