0

無効な HTML ソースを分析するために Saxon 9 を使用しています。具体的には、html には次のような href 値があります。

<a href="blah.asp?fn=view&g_varID=1234">テキスト</a>

エラーが発生します:

"XML パーサーによって報告されたエラー: エンティティ "g_varID" への参照は、';' で終わる必要があります デリミタ。"

xml パーサーは「&g_varID」文字列を読み取り、「;」が必要であると不平を言っています。エンティティを区切る。しかし、もちろん、これは HTML エンティティとして意図されたものではなく、単なる URI の一部です。

パーサーにそれを無視するように指示するにはどうすればよいですか? 注: 私は、Saxon-SA ではなく、非スキーマ対応の Saxon を使用しています。

4

3 に答える 3

3

HTML が XML でない場合、XML プロセッサはそれをどのように処理すると思いますか?

于 2009-05-18T19:15:13.470 に答える
1

正しい xhtml DOCTYPE があることを確認してください。私が見ている xhtml1-strict.dtd によると、href 属性は PCDATA ではなく CDATA と宣言されています。これは、リテラル & が完全に問題なく、エンティティとして解析されるべきではないことを意味します。

于 2009-05-18T19:25:10.487 に答える
0

前述のとおり、これは有効な XML ではなく、HTML です。ただし、この特定の問題は、HTML tidy がデフォルトでクリーンアップするものです: http://www.w3.org/People/Raggett/tidy/。次のコマンドライン引数とともに使用して、HTML を XHTML に変換します。

tidy -asxhtml foo.html > foo.xhtml

そして、XSLT を介して実行できるはずです。

于 2013-01-21T21:34:51.440 に答える