【问题标题】:select xml child element with jQuery使用 jQuery 选择 xml 子元素
【发布时间】:2011-10-17 21:11:35
【问题描述】:

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

【问题讨论】:

    标签: jquery jquery-selectors xml-parsing


    【解决方案1】:

    您可以使用contains 过滤器根据此值过滤节点。

    类似的,

    $(xml).find('abrv:contains(LAKE) + eta > *')
    

    将为示例文档返回一个带有两个元素的 jQuery 对象。

    <time>00:30</time>
    <dest>MAIN</dest>
    

    这是example

    【讨论】:

      【解决方案2】:

      可能是这样的:

      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/

      希望这可以帮助您入门。

      【讨论】:

      • 如何将它与外部 XML 文件一起使用?这就是我真正想要的。
      • 您需要使用另一种方法将 xml 引入。见stackoverflow.com/questions/1292486/…
      • 好的,所以我使用了一个简单的代理来获取 XML,但我还有另一个问题。使用 parseXML 函数和使用 $.get ajax 函数有区别吗?因此,如果不是声明一个 xml 字符串,而是使用 $.get 来获取 xml,我是否应该能够使用与您在上面概述的相同的选择器?
      • 是的,你应该可以就返回xml了。
      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2011-05-04
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      相关资源
      最近更新 更多