我正在尝试解析一个XML文档,但我有点困惑,我是如何去做的。例如,下面显示了我的XML文档
<document>
<object name="Customer" type="class" x="137" y="63">
<attributes>
</attributes>
<methods>
</methods>
</object>
<object name="Item" type="class" x="539" y="275">
<attributes>
</attributes>
<methods>
</methods>
</object>
<link start="Customer" end="Item" type="generalization" />
</document>
在我的情况下,我需要遍历每个“对象”并创建一个对象,在我的应用程序中,这很简单:objectArray.push(new uml_Class(name));
。
现在我将如何遍历文档中的每个<object>
,然后将其名称值插入数组?
我已经读过要使用函数getElementsByTagName()
,但这对我不起作用:
alert(documentXML);
var root = documentXML.getElementsByTagName('Object');
它确实在documentXML
变量中提醒我的XML,但是firebug告诉我以下内容:
documentXML.getElementsByTagName is not a function
如何循环遍历XML文档,重复创建对象?
答案 0 :(得分:4)
您可能对jQuery内置的XML parsing capabilities感兴趣。
示例(借用链接):
$(document).ready(function () {
$.ajax({
type: "GET",
url: "books.xml",
dataType: "xml",
success: xmlParser
});
});
function xmlParser(xml) {
$('#load').fadeOut();
$(xml).find("Book").each(function () {
$(".main").append('<div class="book"><div class="title">' + $(this).find("Title").text() + '</div><div class="description">' + $(this).find("Description").text() + '</div><div class="date">Published ' + $(this).find("Date").text() + '</div></div>');
$(".book").fadeIn(1000);
});
}
答案 1 :(得分:0)
由于它是XML文档,因此标记名称不大小写不变。
var objects = documentXML.getElementsByTagName('object');
应该有效。 document.getElementsByTagName()
可用于所有Document对象,我担心您错过了用DOMParser
解析字符串。