是否可以通过搜索子元素的值来查找xml元素?
对于XML,例如:
<route>
<name>Lakeway</name>
<abrv>LAKE</abrv>
<eta>
<time>00:30</time>
<dest>MAIN</dest>
</eta>
</route>
如果我只有 abrv 的值,我将如何解析xml以获取 eta 标签的子元素?
这是否可以使用jQuery而不循环遍历每个元素并将值与定义的变量进行比较?或者有更好的方法吗?
编辑:
我正在尝试解析来自其他域的XML Feed。我不确定我是否可以使用xmlParse函数,或者我是否需要使用jQuery的Ajax函数?
答案 0 :(得分:2)
您可以使用contains
过滤器根据此值过滤节点。
类似的东西,
$(xml).find('abrv:contains(LAKE) + eta > *')
将返回一个带有两个元素的jQuery对象。
<time>00:30</time>
<dest>MAIN</dest>
这是一个example。
答案 1 :(得分:1)
也许是这样的:
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/
希望这可以让你开始。