1

我正在尝试解析 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 文档,反复制作对象?

4

2 回答 2

4

您可能对 jQuery 的内置XML 解析功能感兴趣。

示例(从链接借来):

$(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);

    });

}
于 2012-05-09T00:13:44.763 回答
0

因为它是一个 XML 文档,所以标签名称不是大小写不变的。

var objects = documentXML.getElementsByTagName('object');

应该管用。document.getElementsByTagName()在所有 Document 对象上都可用,我担心您错过了使用DOMParser.

于 2012-05-09T00:18:23.123 回答