繁体   English   中英

jQuery:XML - 从特定节点读取子节点

[英]jQuery : XML - Reading child nodes from a specific node

我有一个xml文件,我想在其中读取特定节点的子节点...下面是XML文件。

XML文件结构:

<?xml version="1.0" encoding="ISO-8859-1"?>

<categories>
<category type='Type A'>
    <genre>1</genre>
    <genre>2</genre>
</category>
<category type='Type B'>
     <genre>3</genre>
     <genre>4</genre>
     <genre>5</genre>
</category>
<category type='Type C'>
    <genre>6</genre>
</category>
</categories>

我需要使用这个XML的一个例子是类别B类型的所有类型。我怎么能过滤掉所有其他类别所以我可以做一个.find(“genre”)。每个......并且只返回类型3,4和5。

下面是使用的代码:

$.ajax({
        type: "GET",
        url: "myxml.xml",
        dataType: "xml",
        success: function(data){
            xml = data;
            });
        }
    });

    return {getXml : function() 
    { 
        if (xml) return xml;
    }};
})();

/* On Category Change */
$(".category").change(function(){
    var xml = xmlArtists.getXml();

    $(".genre").find("option").remove().end();

    var type = $(this).val();
    var typeGenres = $(xml).find("categories").filter(function(){
        return $(this).find("category").attr("type") == type;
    });

    typeGenres.find("genre").each(function(){
        var genre = $(this).text();
        $(".genre").append("<option value=" + genre + ">" + genre + "</option>");
    });
});

.category是一个对象,当它改变了代码时应该触发......因为我在改变它时会对另一个对象进行改进,但是对于这个问题来说这对它来说并不重要......

提前致谢!!

$(xml).find('category[type="Type B"] > genre')

这将找到type"Type B"所有category节点,并获得每个匹配类别的所有genre子节点。

暂无
暂无

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

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