我试图在不使用元素名称的情况下读取XML元素,例如以下示例中的“Books”。例如。
<Books>
<book>
<title>C++</title>
<author>A</author>
</book>
<book>
<title>XML</title>
<author>X</author>
</book>
</Books>
换句话说,如何动态读取“Books”元素并使用HTML中的jquery将children元素分配给数组。任何帮助,将不胜感激。
答案 0 :(得分:1)
我为你写了简单的HTML。在http://jsfiddle.net/UC2dM/185/
进行演示$.ajax({
url:'/echo/xml/',
data: {xml:'<Books><book><title>C++</title><author>A</author> </book><book><title>XML</title><author>X</author></book></Books>'},
dataType: 'xml',
type:'post',
success: function(data){
var xml = $(data);
$('#container').append( CategoryToUl(xml.children()) );
}
});
function CategoryToUl(xml){
var categories = xml.children('book');
if (categories.length > 0)
{
var ul = $('<ul/>');
categories.each(function(){
var $this = $(this);
var li = $('<li/>');
var a = $('<a/>',{
text: $this.children('title').text()
});
li.append(a);
li.append( CategoryToUl( $this ) );
ul.append(li);
});
return ul;
}
return null;
}
答案 1 :(得分:0)
谢谢大家。我找到了解决方案
var xml = "<root><stuff></stuff><stuff><stuffchild></stuffchild></stuff></root>";
function alertit(jqueryObject) {
if (jqueryObject.length === 0) return;
jqueryObject.each(function() {
alert(this.nodeName.toLowerCase());
});
alertit(jqueryObject.children());
}
alertit($(xml));
http://jsfiddle.net/TBwm8/3/
感谢。