2012-05-09 105 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解析字符串。