2012-03-13 27 views
1

DOM文書(またはその中のノード)を取得する際に問題が発生し、正しくフォーマットされたXMLとしてシリアル化しています。私はツールとしてこれを行う必要があります。私はXMLの部分だけを理解するために文書の一部をアップロードし、不適切に閉じた要素を持つHTMLはアップロードしません。一例として、私は現在、(多くの中で)http://studentlund.seを募集しています。これは、img要素が閉じられていないという私の問題を示しています。例えばJavaScriptでDOMから適切にフォーマットされたXMLを作成します。

私はクロームコンソールで次のコマンドを実行している場合:

$('<div>').append($('body ul:first li:last')).html() 

私が届きます:

<li><a href="http://studentlund.se/feed/"><img src="http://studentlund.se/wordpress/wp- 
content/themes/studentlund/pics/rss.png" alt="RSS"></a></li> 

をimg要素は、このように私のXMLパーサーが失敗し、閉じていません。

私がXmlSerializerを使用する場合:

n = $('body ul:first li:last').get(0) 
new XMLSerializer().serializeToString(n) 

を、私は同じ、不正な形式のXMLを取得します:

<li><a href="http://studentlund.se/feed/"><img src="http://studentlund.se/wordpress/wp-content/themes/studentlund/pics/rss.png" alt="RSS"></a></li> 

を私が欲しいのは、A内のノードのRAW DOMをダンプできることですXMLの適切な書式設定された文字列は、私のXMLツールで使用できるので、これは可能ですか?

答えて

1

このように、何かをXMLドキュメントを作成し、それを文字列にシリアライズしてください:

n = $('body ul:first li:last').get(0); 
var doc = document.implementation.createDocument('', '', null); 
doc.appendChild(n); 
var xml = new XMLSerializer().serializeToString(doc); 
+0

素晴らしい、それは働きました!ありがとう! – topfs2

関連する問題