繁体   English   中英

使用jQuery和JavaScript,如何区分具有相同名称属性的两个XML级别?

[英]Using jQuery and JavaScript, how do I distinguish between two XML levels that have the same Name attr?

所以这是我尝试使用jQuery解析的示例Documentation.XML文件

<DocPortal Version="">
    <Folder Name="Sample Drawings" User="*">
        <File Type="TILES" Name="Sample1" FileName="Sample1.zip"/>
    </Folder>
    <Folder Name="Sample Site Information" User="*">
        <Folder Name="SampleInnerFolder1" User="*">
            <File Type="PDF" Name="Sample1" FileName="Sample1.pdf"/>
            <File Type="PDF" Name="Sample2" FileName="Sample2.pdf"/>
        </Folder>
        <Folder Name="SampleInnerFolder2" User="*">
            <File Type="PDF" Name="Sample1" FileName="Sample1.pdf"/>
            <File Type="PDF" Name="Sample2" FileName="Sample2.pdf"/>
        </Folder>
        <File Type="PDF" Name="Sample1" FileName="Sample2.pdf" QR=""/>
        <File Type="PDF" Name="Sample2" FileName="Sample2.pdf" QR=""/>
    </Folder>
</DocPortal>

当我执行以下代码时,将获得两个级别中所有文件夹名称的列表

$.get(lDocumentationFilePath , function(data){
    $('#content').empty();
    $(data).find('Folder').each(function(){
        var $Folder = $(this);
        console.log($Folder.attr('Name'));
    });
});

我想要的只是每个顶级文件夹名称的列表。 因此,只需“样本图”和“样本站点信息”。

有任何想法吗?

您需要使用children()而不是find()才能仅获取顶级后代。

$(data).children('Folder').each(function(){
    var $Folder = $(this);
    console.log($Folder.attr('Name'));
});

给定一个表示一组DOM元素的jQuery对象,.children()方法使我们可以在DOM树中搜索这些元素的子代,并从匹配的元素构造一个新的jQuery对象。 .children()方法与.find()的不同之处在于.children() 仅沿 DOM树向下移动一个级别 ,而.find()可以向下遍历多个级别以选择后代元素(孙子等), 参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM