Next: Atomic Changes, Previous: Checksum/Hash, Up: Text [Contents][Index]
Emacsがlibxml2サポートつきでコンパイルされたときは、HTMLやXMLのテキストをLispオブジェクトツリーにパースするために以下の関数が利用可能です。
この関数は、startとendの間のテキストをHTMLとしてパースして、HTMLパースツリー(parse tree)を表すリストをリターンする。これは構文誤り強力に対処することにより、“実世界”のHTMLの処理を試みる。
オプション引数base-urlが非nil
なら、それはリンク内に出現する相対URLにたいするベースURLを指定する文字列であること。
パースツリー内では各HTMLノードは1つ目の要素がノード名を表すシンボル、2つ目の要素がノード属性のalist、残りの要素はサブノードであるようなリストにより表される。
以下の例でこれを示す。以下の(不正な)HTMLドキュメントを与えると:
<html><head></head><body width=101><div class=thing>Foo<div>Yes
libxml-parse-html-region
呼び出しにより以下がリターンされる:
(html () (head ()) (body ((width . "101")) (div ((class . "thing")) "Foo" (div () "Yes"))))
この関数はdom内のパース済みHTMLをカレントバッファー内に描画する。引数domはlibxml-parse-html-region
で生成されるようなリストであること。この関数はたとえばEWW in The Emacs Web Wowser Manualにより使用される。
この関数はlibxml-parse-html-region
と同様だが、HTMLではなくXML(構文についてより厳格)としてテキストをパースする点が異なる。