無効なHTML入力のXSLTとXQueryは、URIの部分は、エンティティのように見えます

StackOverflow https://stackoverflow.com/questions/879294

  •  22-08-2019
  •  | 
  •  

質問

私は、無効なHTMLソースを分析するためにサクソン9を使用しています。具体的にHTMLは次のようなhrefの値を持っています:

一部のテキスト

私はエラーを取得しています:

「XMLパーサによって報告されたエラー:エンティティへの参照 『g_varID』で終わらなければなりません   「;」区切り文字。 "

XMLパーサーは、「&g_varID」の文字列を読んで、そこにあるべきことを不平を言っています「;」エンティティを区切るために。しかし、もちろん、これはHTMLエンティティとして意図されていない - それは、URIの単なる一部です。

どのように私はそれを無視するパーサを伝えることができますか?注:私は非スキーマ認識サクソン、ないサクソン-SAを使用しています。

役に立ちましたか?

解決

あなたは正しいXHTMLのDOCTYPEを持っていることを確認してください。私は文字通りの意味&完全に大丈夫ですし、実体として解析するべきではありません。、href属性が宣言されているCDATA、ないPCDATA、見ていXHTML1-strict.dtdによると

他のヒント

あなたのHTMLはXMLでない場合は、

、そしてどのように任意のXMLプロセッサがそれを処理するために期待していますか?

前述したように、

、これはHTMLで、有効なXMLではありません。 ます。http:// WWWのこの特定の問題は、しかし、きちんとしたHTMLは、デフォルトではクリーンアップです。 w3.org/People/Raggett/tidy/する。 XHTMLにHTMLを変換するには、次のコマンドライン引数でそれを使用します:

tidy -asxhtml foo.html > foo.xhtml

そして、あなたのXSLTを介して実行することができる必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top