【问题标题】:How to parse xml attributes with jQuery alone?如何仅使用 jQuery 解析 xml 属性?
【发布时间】:2011-04-21 17:03:02
【问题描述】:

我已经成功解析了 xml,但我一直在获取 childrens 的属性。

XML 示例:

<entries>
    <entry>
        <media:thumbnail url="blah" />
    </entry>
</entries>

Javascript/jQuery:

$.get('data.xml', function(d){
    $(d).find('entry').each(function(){
        var $entry = $(this);
        var pic = $entry.find('media:thumbnail').attr('url');
    })
});

那个 javascript 不适合我获取属性。 有什么问题?

【问题讨论】:

  • 你的js是正确的。问题一定是别的。
  • 如果你使用console.log(d);,你会看到什么?
  • 对我来说很好用。您的回复内容类型是否正确?

标签: javascript jquery xml


【解决方案1】:

啊,命名空间是一种不同的动物,它不在您的原始帖子中。您必须在选择器中转义 :

var pic = $entry.find('media\\:thumbnail').attr('url');

http://jsfiddle.net/JSrJe/1/

另见jQuery XML parsing with namespaces

【讨论】:

  • 这就是我要说的,非常感谢!!
【解决方案2】:

试试这个

$.ajax({
    type: "GET",
    url: 'data.xml,
    dataType: "xml",
    success: function(xml) {
        $(xml).find('entry').each(function(){
            var $entry = $(this);
            var pic = $entry.find('picture').attr('url');
            alert(pic);
        })
    },
    error: function(xhr, status, error) {
        if (xhr.status != 404) {alert(error);} else {alert("404 xml not found");}
    }
})

【讨论】:

    【解决方案3】:
      $.get('data.xml', function(d) {
        $(d).find('entry').each(function() {
            var $entry = $(this);
            var pic = $e`enter code here`ntry.find('media\\:thumbnail, thumbnail').attr('url');
        })
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多