2

のような文字列が <html><body><div id="message">Hello World!</div></body></html> あり、HTML を自分で解析せずに #message 要素のコンテンツを取得したいと考えています。

Gecko で文字列からドキュメント オブジェクトを作成できるのではないかと考えました (これは Firefox アドオン用です) が、簡単な方法がわかりません。

createDocumentメソッドがあることに気付きましたが、これは文字列を取りません。テキストからその部分を取り除かなければならないでしょうが<html>、再び私は何かを想定し始めています.

誰にもアイデアはありますか?ありがとう。

編集:これは私にとってはうまくいくようです:

doc = document.implementation.createDocument( "http://www.w3.org/1999/xhtml", "html", null );
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>';
node = doc.getElementById( "message" ); 
alert( node.innerHTML );
4

3 に答える 3

3

自分の質問に答えるのは好きではありませんが、これはうまくいったようです:

doc = document.implementation.createDocument( "http://www.w3.org/1999/xhtml", "html", null );
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>';
node = doc.getElementById( "message" ); 
alert( node.innerHTML );
于 2009-10-24T06:32:36.223 に答える
2

文字列はどこから取得しますか?XML の場合は、DOMParser.

それ以外の場合は、HTML ドキュメントを作成する必要があります - https://developer.mozilla.org/en/Parsing_HTML_From_Chrome

createDocument人々はこれまでより複雑なソリューションを使用していたため、使用するだけで機能するという事実は疑わしいようです。

于 2009-10-24T20:50:09.927 に答える
0

それは常にその構文ですか?もしそうなら、なぜ正規表現を使わないのですか?

于 2009-10-23T22:58:19.630 に答える