0

次のように、特定のタグを持つ xml ドキュメントを解析する必要があります。

        <result>
            <ns0:Item>
                <ItemID>1365</ItemID>
                <ItemNumber>671150</ItemNumber>
            </ns0:Item>
            <ns0:Item>
                <ItemID>1305</ItemID>
                <ItemNumber>6700150</ItemNumber>
            </ns0:Item>
        </result>
  1. ドキュメントにタグ'ns0:Item'が含まれているかどうかを「検索」したい場合、以下のコードではそれができません。
  2. コロン「:」文字を削除すると、xml を正常に解析できます。

コード:

$(document).find('ns0:Item').each(function(){
    ....<br/>
    ....<br/>
    ....<br/>
});

xml の「:」文字を解析する方法を教えてください。
ありがとうございました!

4

1 に答える 1

3

コロンは、namespace-prefix と要素名を区切ります。プレフィックスの値は意味的に重要ではありません。重要なのは名前空間文字列です。あなたの場合ns0、コードに表示されていない文字列を参照します。XML ドキュメントの先頭近くのどこかに指定されている可能性があります。

特定のプレフィックスを持つアイテムを選択するには、ajax 呼び出しのコールバックで選択を行っていると仮定するとsuccess、次のようなものが必要だと思います。

success: function(xml) {
    var ns = "uri:whatever";  // the actual namespace, not the prefix
    $(xml).find('Item').each(function(){
        if ($(this).get(0).namespaceURI == ns) {
           ....
        }
    });
}

documentXML ドキュメントを表す、コード内の変数名として使用しました。それは紛らわしいようです。documentブラウザーの HTML ドキュメント以外のものを参照するために名前を使用しないことをお勧めします。

于 2012-04-17T06:13:56.113 に答える