【问题标题】:Using Javascript To Parse XML and Create Objects From The Retrieved Values使用 Javascript 解析 XML 并从检索到的值创建对象
【发布时间】:2012-05-17 12:06:21
【问题描述】:

我正在尝试解析 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));

现在我将如何遍历文档上的每个&lt;object&gt;,然后将其名称值插入到数组中?

我读到要使用函数getElementsByTagName(),但这对我不起作用:

alert(documentXML);
var root = documentXML.getElementsByTagName('Object');

它确实在 documentXML 变量中提醒我的 XML,但随后 firebug 告诉我以下信息: documentXML.getElementsByTagName is not a function

我将如何循环遍历一个 XML 文档,重复创建对象?

【问题讨论】:

  • 你试过documentXML.all["object"]吗?

标签: javascript xml dom xml-parsing


【解决方案1】:

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

    });

}

【讨论】:

    【解决方案2】:

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

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

    应该可以。 document.getElementsByTagName() 可用于所有 Document 对象,我担心您错过了使用 DOMParser 解析字符串。

    【讨论】:

      猜你喜欢
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 2021-11-26
      相关资源
      最近更新 更多