jQuery检索顶级XML节点

jquery to retrieve a top level xml node

本文关键字:XML 节点 检索 jQuery      更新时间:2023-09-26

我试图使用 jquery 从以下 xml 中检索顶级 'label' 属性,并将其解析为 DOM 对象,但没有运气。关于我如何做到这一点的任何建议?我尝试使用child(),parent()函数没有运气 - 我要么没有结果,要么最终将标签标签的所有实例都传回给我。

jquery:

xml = $.parseXML(xmlString);
$xml = $(xml);

我通过$($xml).find('fields').each(function(){等穿越田野...但无法获得顶级label数据!

<customobject>
    <label>want this content</label>
    <fields>
        <label>foo</label>
        <attr1></attr1>
        <attr2></attr2>
    </fields>
    <fields>
        <label>foo2</label>
        <attr1></attr1>
        <attr2></attr2>
    </fields>
</customobject>

你可以像下面这样寻找customobject的孩子label。只需使用 find('label') 即可返回所有label元素的内容

var xmlString = '<customobject><label>want this content</label><fields><label>foo</label><attr1></attr1><attr2></attr2></fields><fields><label>foo2</label><attr1></attr1><attr2></attr2></fields></customobject>';
var xml = $.parseXML(xmlString);
var $xml = $(xml);
alert($xml.find('customobject > label').text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

希望这会有所帮助

    var xml = "<customobject>"+
              "<label>want this content</label>"+
                "<fields>"+
                    "<label>foo</label>"+
                    "<attr1></attr1>"+
                    "<attr2></attr2>"+
                "</fields>"+
                "<fields>"+
                    "<label>foo2</label>"+
                    "<attr1></attr1>"+
                    "<attr2></attr2>"+
                "</fields>"+
            "</customobject>";
  xmlDoc = $.parseXML(xml ),
  $xml = $( xmlDoc ),
  $firstLabelbject = $xml.find( "customobject label")[0].innerHTML; // Will select first label
  console.log($firstLabelbject);

JSFIDDLE 示例