私は新しい$.parseXML()
メソッドをjQuery 1.5で使用しています。新しい要素をXMLオブジェクトに挿入すると、その新しい要素は自動的に値「http://www.w3.org/1999/xhtml」を持つ「xmlns」属性を取得します。例えば、以下のコードを参照してください。jQueryがXMLオブジェクトに 'xmlns'属性を挿入しないようにするにはどうすればよいですか?
var myXml = "<one attr='a'><two attr='b'/><three attr='c'><four attr='d'/></three></one>";
myXml = $.parseXML(myXml);
$(myXml).find('three').append($('<five>some value</five>'));
コードは、以下の要素を作成します。
<five xmlns="http://www.w3.org/1999/xhtml">some value</five>
にはどうすれば「のxmlns」属性を挿入するから、jQueryのを防ぐのですか?私は.removeAttr()
メソッドを使ってみましたが、うまくいかないようです。何か案は?
更新: ユーザーnrabinowitzがこの問題を解決するのに役立ったという提案。トップレベル要素にxlmns属性を追加すると、xlmns属性が各新しい要素に自動的に割り当てられなくなります。それでも、私は私の特定のプログラムのための別の解決策を選んだ。代わりに、メソッドを使用してXMLオブジェクトを(Webページに表示される)文字列に変換した後で、すべてのxlmns属性を削除しました。
ルート要素に独自のXMLNS属性を追加しようとしましたか?明示的な名前空間がない場合、jQueryのデフォルトはXHTMLです。 – nrabinowitz
jQuery自体は、XML解析を全く行っていないと思います。代わりに、ブラウザがそれを行うことができます。 (もしjQueryに完全なXMLパーサが組み込まれていれば、それはさらに大きくなるでしょう:-) * edit * yupはソースをチェックしました。あなたのXMLを "DOMParser"インスタンスに渡すだけです。 – Pointy