jQuery:XML - 从特定节点读取子节点
问题描述:
我有一个xml文件,其中我想读取特定节点的子节点...下面是XML文件。jQuery: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>
什么,我wouild需要在使用该XML的一个例子是所有类别类型B.到底我能过滤掉所有其他类别,所以我可以做一个流派。.find( “类型”),每个....和仅返回类型3,4和5
赫雷什使用的代码IM:
$.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')
这将找到所有category
节点,其type
为"Type B"
,并得到所有匹配的每个类别的genre
子节点。
+0
哈哈你我刚才发布的信息就在你回应之前,但它没有让我因为我的声誉,所以我把它作为评论。这比我想象的更容易......非常感谢! – 2012-03-09 00:07:09
只是理解了它比我想象...继承人的代码更容易。 /*在种类变更*/ \t $( “类”)改变(函数(){ \t \t VAR XML = xmlArtists.getXml();。 \t \t \t \t $( “流派 ”)找到(“ 选项”),删除()()结束; \t \t \t \t变种类型= $(本).VAL (); \t \t $(xml).find(“category [type ='” +(type)+“']”)。find(“genre”)。 \t \t \t $(“。genre”)。append(“”); \t \t}); \t}); – 2012-03-09 00:04:45