2012-05-09 79 views
1

我想解析一个XML文档,但我有点困惑,我是如何去了解它。例如下面显示了我的XML文档使用Javascript来解析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'); 

它提醒我的XML在documentXML变量,但随后萤火告诉我下面的: documentXML.getElementsByTagName is not a function

我将如何循环浏览一个XML文档,反复制作对象?

+0

你有没有试过'documentXML.all [“object”]'? –

回答

4

您可能感兴趣的jQuery's built in 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); 

    }); 

} 
0

由于它是一个XML文档,标记名称是情况下是不变的。

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

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