我正在尝试使用SgmlReader将HTML流转换为XML,以便进行进一步的解析。此转换是我正在为Windows 8应用商店开发的应用程序的一部分。下面是将Html转换为XML的方法:
public static void ConvertToXml(string webResponse)
{
StringWriter sWriter = new StringWriter();
XmlWriter xmlWriter = XmlWriter.Create(sWriter);
SgmlReader sgmlReader = new SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
sgmlReader.CaseFolding = CaseFolding.ToLower;
sgmlReader.InputStream = new StringReader(webResponse);
sgmlReader.IgnoreDtd = true;
while (!sgmlReader.EOF)
{
xmlWriter.WriteNode(sgmlReader, true);
}
xmlWriter.Flush();
XmlString = sWriter.ToString();
}sgmlReader.WhitespaceHandling = WhitespaceHandling.All;是问题所在,因为Xml.WhitespaceHandling不存在。有没有其他方法可以做到这一点?
发布于 2012-11-25 06:28:00
经过大量的阅读和测试/调试后,我发现sgmlReader.WhitespaceHandling = WhitespaceHandling.All是不需要的,至少在我的例子中是这样,因为sgmlReader.WhitespaceHandling默认设置为All。但是,我删除了sgmlReader.IgnoreDtd = true;现在我的Xml文件看起来很正常;)
希望这能帮助到一些人
https://stackoverflow.com/questions/13544062
复制相似问题