4

とにかく私がやっていることよりもおそらくもっときれいな解決策があると思いますが、これが既知の問題であるかどうか、私が間違っていることが明らかな何かがあるかどうかなど...

説明する価値のない理由で、私はいくつかのJavascriptコードを持っています。これは、1つの可能なパスで、DOMParserを使用して文字列からXMLをロードし、XMLSerializerを使用して文字列にシリアル化して戻します。XMLドキュメントはXSLスタイルシートです。メインのxsl:stylesheetタグには2つのxmlns要素があります。1つはxsl名前空間を宣言し、もう1つは私が使用するカスタム名前空間を宣言します。(「foo」と呼びます)

IE9では、少なくとも、DOMParserを介したラウンドトリップから出力を取得すると、xmlns:xsl要素はまだ存在しますが、xmlns:foo要素が欠落しています。これは予想される動作ですか?私は何が欠けていますか?

4

2 に答える 2

1

テスト ケースhttp://home.arcor.de/martin.honnen/javascript/2012/test2012070901.htmlを作成したところ、Windows 7 で IE 9 を使用した出力が

Input
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:foo="http://example.com/foo">
<xsl:template match="foo:bar">Test</xsl:template>
</xsl:stylesheet>
Output
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="foo:bar">Test</xsl:template>
</xsl:stylesheet>

したがって、名前空間宣言は削除されます。IE 9 のバグだと思います。connect.microsoft.com でそのようなものが既に報告されているかどうかを確認し、報告されていない場合は報告してください。IE 10 を使用してここを読んでいる人はいますか? IE 10 は何を表示しますか?

[編集] IE 10 には接続の問題があり、おそらく関連しています: https://connect.microsoft.com/IE/feedback/details/728093/xmlserializer-omits-xmlns-attributes .

于 2012-07-09T16:55:59.150 に答える