C# XmlReader:解析没有引号的属性时遇到问题

C# XmlReader:解析没有引号的属性时遇到问题,c#,xml-parsing,html-parsing,C#,Xml Parsing,Html Parsing,我试图解析的一段HTML包含一些没有引号的属性值,例如带有宽度和高度属性: <img src="/static/logo.png" width=75 height=90 /> 此语句报告一个XmlException: '75' is an unexpected token. The expected token is '"' or '''. Line 16, position 37. 是否有一些XmlReader设置可以使XmlReader更加宽松?我无法控制生成的HTML。为了

我试图解析的一段HTML包含一些没有引号的属性值,例如带有宽度和高度属性:

<img src="/static/logo.png" width=75 height=90 />
此语句报告一个XmlException:

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

是否有一些XmlReader设置可以使XmlReader更加宽松?我无法控制生成的HTML。

为了阅读HTML,您需要一个专门为此设计的阅读器。可以在这里帮助您,也可以在中提到


事实并非如此。它们都基于,但遵循不同的规则。XML的规则比HTML严格得多,其中包括需要关闭所有标记,属性需要用单引号或双引号括起来。因此,除非您正在解析与XML兼容的XHTML,否则XmlReader将无法为您工作。

您也可以使用WebBrowser控件。将文件加载到其中,并从WebBrowser.Document属性获取HtmlDocument。然后,您可以在控件之间循环。

您不应该使用XmlReader解析HTML,例如,请参阅[在.Net中是否有与HTML等效的XmlReader?][1]。[1] :太好了。最初我使用的是HtmlAgilityPack,但对于这个简单的office实用程序,我不想添加DLL依赖项(我想要一个EXE),因此这种WebBrowser方法可以很好地工作。这是一个有趣的黑客。它感觉有点脏,但我已经能想到我可能使用它的情况。HtmlAgilityPAck在这里有什么帮助?我已经尝试了
htmlDoc.OptionFixNestedTags=true;htmlDoc.OptionCheckSyntax=true;htmlDoc.OptionAutoCloseOnEnd=true;htmlDoc.OptionOutputOptimizeAttributeValues=true和没有做的把戏。。。
'75' is an unexpected token. The expected token is '"' or '''. Line 16, position 37.