用jQuery选择xml子元素

时间:2011-08-02 00:53:27

标签: jquery jquery-selectors xml-parsing

是否可以通过搜索子元素的值来查找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函数?

2 个答案:

答案 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/

希望这可以让你开始。