無効なHTML入力のXSLTとXQueryは、URIの部分は、エンティティのように見えます
質問
私は、無効な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を介して実行することができる必要があります。
所属していません StackOverflow