2011-02-04 3 views
4

現在、分析のためにウェブページをプルダウンしている処理系のフレームワークを処理しています。 Rhino Javascriptエンジンは、返されたWebページの解析を支援するために使用できます。JavaScriptを使用してDOMツリーにHTML文字列をロードします。

文字列(完全なWebページです)をDOM表現に読み込むことができれば、コンテンツを解析して解析するための非常に優れたインターフェイスを提供するようです。

Javascriptのみを使用して、これは可能な、または実現可能なコンセプトですか?

編集:

私は明確に質問が分解されます:私は、このようなようなHTMLが含まれているJavaScriptで文字列があるとしましょう:

 

var $mywebpage = '<!DOCTYPE HTML PUB ...//snipped//... </body></html>'; 
 

は何とかそれをロードすることは現実的で/それが可能ですDOMオブジェクトに入れますか?

+0

私は右の理解場合は、することができます'document.body.innerHTML =" string "' – JCOC611

答えて

0

この変数にhtmlが含まれている場合は、idなどのDOMオブジェクトに読み込むことができます。それは私の問題を解決するのに有用であったと私はJonDavidJohnの答えを受け入れるよ

var mywebpage = '<!DOCTYPE HTML PUB ...//snipped//... </body></html>'; 

element = document.getElementById('dom-id'); //<-- element you are loading it into. 

element.innerHTML = mywebpage; 
+0

の本文にhtml文字列を追加するこれは正しい方向へのステップです。 Rhinoを使用しているので、実際にDOMオブジェクトにアクセスしたり、おそらく「作成」できるかどうかは不明です。私はこれを見て、もっと学ぶように更新します。 – xelco52

+0

あなたはhtmlの文字列を持っている限り、選択したDOM要素にロードされます。 – jondavidjohn

1

は、将来的にこれを表示することが他の人のために、この追加の回答を含むと思いました。

JavaScriptはDOM要素にHTML文字列を読み込むことができますが、DOMはECMAScriptコアの一部ではないため、Rhinoで動作するスクリプトでは使用できません。

Rhino 1.6に実装されている優れた選択肢は、E4Xです。 DOMの実装ではありませんが、概念的に似た機能を提供します。

1

ドキュメントがXHTMLの場合、XMLパーサーで解析できます。組み込みのJava XMLパースインターフェイスと同様、E4Xはうまく機能します。しかし、それはHTMLをなら

http://ejohn.org/blog/bringing-the-browser-to-the-server/

http://www.envjs.com/

env.jsライブラリーは、Rhinoの下のブラウザ環境をエミュレートするように設計されていますが、私はあなたの文書にも対応XHTMLにする必要があると考えていますブラウザがマークアップがどのように解析されるかに非常に寛大であるように設計されているので、より困難です。 JavaでHTMLパーサのリストについては、こちらをご覧ください:

http://java-source.net/open-source/html-parsers

これは解決する簡単な問題ではありません。 Mozilla GeckoエンジンをJNI経由でJavaに埋め込んで、解析機能を使用するようになったのです。

私はあなたが以下の純粋なJavaプロジェクトに見てお勧めします:ロボプロジェクトの目標は、純粋なJavaベースのWebブラウザを開発することである

http://lobobrowser.org/cobra.jsp

。それはかなり興味深いプロジェクトだし、そこにたくさんありますが、私は次のリンクで説明するように、独自のアプリケーションに非常に簡単にパーサをスタンドアロンで使用することができます信じる:

http://lobobrowser.org/cobra/java-html-parser.jsp

関連する問題