23

HTML ドキュメントを有効な XML、できれば XHTML に変換する必要があります。これを行う最善の方法は何ですか?ツールキット/ライブラリ/サンプル/...そのタスクを完了するのに役立つものを知っている人はいますか?

ここでもう少し明確にするために、私のアプリケーションは実行時に自動的に変換を行う必要があります。一部のページを手動で XHTML に移動するのに役立つツールは探していません。

4

7 に答える 7

24

HTML Tidy を使用して HTML から XML に変換する

ダウンロード可能なバイナリ

JRoppert、必要に応じて、ソースを見たいと思うかもしれません

c:\temp>tidy -help
tidy [option...] [file...] [option...] [file...]
Utility to clean up and pretty print HTML/XHTML/XML
see http://tidy.sourceforge.net/

Options for HTML Tidy for Windows released on 14 February 2006:

File manipulation
-----------------
 -output <file>, -o  write output to the specified <file>
 <file>
 -config <file>      set configuration options from the specified <file>
 -file <file>, -f    write errors to the specified <file>
 <file>
 -modify, -m         modify the original input files

Processing directives
---------------------
 -indent, -i         indent element content
 -wrap <column>, -w  wrap text at the specified <column>. 0 is assumed if
 <column>            <column> is missing. When this option is omitted, the
                     default of the configuration option "wrap" applies.
 -upper, -u          force tags to upper case
 -clean, -c          replace FONT, NOBR and CENTER tags by CSS
 -bare, -b           strip out smart quotes and em dashes, etc.
 -numeric, -n        output numeric rather than named entities
 -errors, -e         only show errors
 -quiet, -q          suppress nonessential output
 -omit               omit optional end tags
 -xml                specify the input is well formed XML
 -asxml, -asxhtml    convert HTML to well formed XHTML
 -ashtml             force XHTML to well formed HTML
 -access <level>     do additional accessibility checks (<level> = 0, 1, 2, 3).
                     0 is assumed if <level> is missing.

Character encodings
-------------------
 -raw                output values above 127 without conversion to entities
 -ascii              use ISO-8859-1 for input, US-ASCII for output
 -latin0             use ISO-8859-15 for input, US-ASCII for output
 -latin1             use ISO-8859-1 for both input and output
 -iso2022            use ISO-2022 for both input and output
 -utf8               use UTF-8 for both input and output
 -mac                use MacRoman for input, US-ASCII for output
 -win1252            use Windows-1252 for input, US-ASCII for output
 -ibm858             use IBM-858 (CP850+Euro) for input, US-ASCII for output
 -utf16le            use UTF-16LE for both input and output
 -utf16be            use UTF-16BE for both input and output
 -utf16              use UTF-16 for both input and output
 -big5               use Big5 for both input and output
 -shiftjis           use Shift_JIS for both input and output
 -language <lang>    set the two-letter language code <lang> (for future use)

Miscellaneous
-------------
 -version, -v        show the version of Tidy
 -help, -h, -?       list the command line options
 -xml-help           list the command line options in XML format
 -help-config        list all configuration options
 -xml-config         list all configuration options in XML format
 -show-config        list the current configuration settings

Use --blah blarg for any configuration option "blah" with argument "blarg"

Input/Output default to stdin/stdout respectively
Single letter options apart from -f may be combined
as in:  tidy -f errs.txt -imu foo.html
For further info on HTML see http://www.w3.org/MarkUp
于 2008-09-26T10:02:32.803 に答える
6

HTML Agility Packを使用できます。CodePlex からのオープンソース プロジェクトです。

于 2008-09-26T10:16:38.883 に答える
4

.NET 4.0 には Html2Xhtml を使用します。

インメモリ文字列から文字列への変換:

var xhtml = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToEnd();

メモリ内文字列から XDocument への変換:

var xdoc = Html2Xhtml.RunAsFilter(stdin => stdin.Write(html)).ReadToXDocument();

詳細については、 http://corsis.sourceforge.net/index.php/Html2Xhtmlを参照してください。

于 2010-03-21T00:12:05.200 に答える
4

Validator.nu HTML パーサーには、HTML5 解析アルゴリズムと infoset 強制規則を使用して変換を行う HTML2XML サンプル プログラムが付属しています。

于 2008-09-30T11:40:04.973 に答える
2

http://corsis.sourceforge.net/index.php/Html2Xhtml http://corsis.sourceforge.net/index.php/Html2Xhtml

Html2Xhtmlは、HTMLをGPLv2以降でライセンスされたXHTMLに変換するための.NET4.0ライブラリです。

私は、欧州連合の大規模なオンラインデータベースのローカル再構築でHtml2Xhtmlをテストしました。Tidy / Tidy.NETはほとんどの場合有効な出力を生成しませんでしたが、ChilkatのHTMLからXMLへの変換は少し遅く、奇妙な結果(置き忘れ、欠落、説明できない要素)を生成しました。無料で高速で信頼性の高い変換ツールを見つけるために、このライブラリを作成しました。私がテストした他のすべてのライブラリよりも2〜4倍速く変換します。

Html2Xhtmlは、LINQ to XMLの機能と組み合わせて、すべての大規模なデータ抽出およびWebクロールシナリオに最適なツールです。

于 2011-06-04T13:27:40.770 に答える
2

きちんとした実行可能ファイルを使用して、html を xhtml に変換できます。

tidy -asxhtml -numeric < index.html > index.xhml

ここでc# の実装を確認できます。

于 2012-11-22T16:13:04.297 に答える
0

最も簡単な方法は、必要な変更を特定するように Visual Studio IDE を設定することです。Visual Studio 2008 でこれを行うには、[ツール]、[オプション]、[テキスト エディター]、[HTML]、[検証] の順に移動し、適切なターゲットを選択します。XHTML 1.1 または XHTML 1.0 Transitional の可能性があります。

さまざまなタイプの情報については、http: //msdn.microsoft.com/en-us/library/aa479043.aspxを参照してください。

次に、ページで強調表示されているポイントに取り組む必要があります。

于 2008-09-26T10:06:20.923 に答える