繁体   English   中英

使用Javascript解析XML并从检索的值中创建对象

[英]Using Javascript To Parse XML and Create Objects From The Retrieved Values

我试图解析一个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文档,重复制作对象?

您可能对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);

    });

}

由于它是XML文档,因此标记名称不是大小写不变的。

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

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

暂无
暂无

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

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