ビルトインのlibxml2サポートつきでEmacsをコンパイルできます。
この関数はビルトインlibxml2サポートが利用可能なら非nil
をリターンする。
libxml2サポートが利用可能なら、HTMLやXMLのテキストをLispオブジェクトツリーにパースするために以下の関数を利用できます。
この関数はstartとendの間のテキストをHTMLとしてパースして、HTMLパースツリー(parse tree)を表すリストをリターンする。これは構文誤りにたいして強力に対処することにより、現実世界のHTMLの処理を試みる。
startまたはendがnil
の場合のデフォルト値は、それぞれpoint-min
とpoint-max
になる。
オプション引数base-urlが非nil
なら、それはlibxml2がレポートする警告とエラーに使用されるべきだが、現在のところEmacsはエラーと警告を無効にしてこのライブラリーを呼び出すのでこの引数は使用されていない。
オプション引数discard-commentsが非nil
なら、すべてのトップレベルのコメントを破棄する(この引数は時代遅れでありEmacsの将来のバージョンで削除されるだろう。コメントの削除にはパース関数の呼び出し前にデータにユーティリティ関数xml-remove-comments
を使用すること)。
パースツリー内では各HTMLノードは1つ目の要素がノード名を表すシンボル、2つ目の要素がノード属性のalist、残りの要素はサブノードであるようなリストにより表される。
以下の例でこれを示す。以下の(不正な)HTMLドキュメントを与えると:
<html><head></head><body width=101><div class=thing>Foo<div>Yes
libxml-parse-html-region
呼び出しにより以下のDOM (document object
model)がリターンされる:
(html nil (head nil) (body ((width . "101")) (div ((class . "thing")) "Foo" (div nil "Yes"))))
この関数はdom内のパース済みHTMLをカレントバッファー内に描画する。引数domはlibxml-parse-html-region
で生成されるようなリストであること。この関数はたとえばEWW in The Emacs Web Wowser Manualにより使用される。
この関数はlibxml-parse-html-region
と同様だが、HTMLではなくXML(構文についてより厳格)としてテキストをパースする点が異なる。