2

解析しようとしているHTMLには、引用符なしの属性値が含まれています。たとえば、幅と高さの属性があります。

<img src="/static/logo.png" width=75 height=90 />

C#コードでは、リーダーは次のアンカータグまで読み取ります。

while (reader.ReadToFollowing("a"))

このステートメントはXmlExceptionを報告します:

'75' is an unexpected token. The expected token is '"' or '''. Line 16, position 37.

XmlReaderをより寛大にするためのXmlReaderSettingはありますか?生成されたHTMLを制御できません。

4

2 に答える 2

6

HTMLを読むには、その目的のために設計されたリーダーが必要です。HtmlAgilityPackは、関連する質問へのこの回答で参照されているSgmlReaderと同様に、ここで役立ちます。

HTMLXMLではありません。どちらもSGMLに基づいていますが、異なる規則に従います。XMLには、HTMLよりもはるかに厳しいルールがあります。これには、すべてのタグを閉じる必要があることや、属性を一重引用符または二重引用符で囲む必要があることが含まれます。したがって、XML準拠のXHTMLを解析しない限り、XmlReaderは機能しません。

于 2012-08-13T14:12:59.507 に答える
3

WebBrowserコントロールも使用できます。ファイルをそのファイルにロードし、WebBrowser.DocumentプロパティからHtmlDocumentを取得します。その後、コントロールをループできます。

于 2012-08-13T14:22:08.153 に答える