5

JavaScript を使用して XML を作成する必要があります。難しいことの 1 つは、ノードのテキスト コンテンツに XML 修飾名を入力する必要があることです。つまり、myns:myelement などのローカル名とプレフィックスです。

問題は、プレフィックスがバインドされる名前空間の他の要素や属性が XML ドキュメントに含まれていないことです。そのため、名前空間ノード (xmlns) を外側の要素に追加して、プレフィックスを定義する必要があります。例えば: -

<myElement xmlns:myprefix="http://something">myprefix:foo</myElement>

JavaScript で xmlns 名前空間ノードを追加する良い方法がわかりません。現在、私は次のひどいハックを持っています: -

        // Hacky way to get a namespace prefix definition. TODO: can we do something nicer?
        var prefix = "ixe";
        requestElement.setAttributeNS(inputTypes[0].namespaceURL, prefix + ":" + "def", "");
        inputElement.textContent = prefix + ":" + inputTypes[0].localName;

必要な名前空間と任意のプレフィックスを使用して、不要な属性を作成しています。これにより、生成されたドキュメントには、名前空間のプレフィックスを定義する xmlns 名前空間ノードが含まれます。

最新の FireFox と Chrome では実行できますが、IE では実行できませinputElement.setAttribute("xmlns:" + PREFIX, inputType.namespaceUri);。しかし、ブラウザ中立のソリューションが必要です。

しかし、そのダミー属性を作成したくはありません。確かに、名前空間ノードを明示的に作成できる必要があります。私は何を逃したのですか?

4

0 に答える 0