2012-05-09 4 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'); 

それはdocumentXML変数で私のXMLを警告していたが、その後放火犯は私に次のように伝えます: documentXML.getElementsByTagName is not a function

どのようにオブジェクトを繰り返し作成するXML文書をループするのですか?

+0

あなたは 'documentXML.all [" object "]'を試したことがありますか? –

答えて

4

jQueryのXML parsing capabilitiesに興味があるかもしれません。 (リンクから借用)

例:それはXMLドキュメントであるよう

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

    }); 

} 

、タグ名は、ない場合不変です。

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

が有効です。 document.getElementsByTagName()がすべてのDocumentオブジェクトで利用可能ですが、DOMParserという文字列をパースするのを忘れてしまいました。

関連する問題