我正在尝试使用SgmlReader将HTML流转换为XML以进行进一步解析。此转换是我正在为Windows 8商店开发的APP的一部分。下面是将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不存在是问题。还有其他方法吗?
答案 0 :(得分:0)
经过大量的阅读和测试/调试后发现sgmlReader.WhitespaceHandling = WhitespaceHandling.All在我的情况下至少不需要,因为sgmlReader.WhitespaceHandling默认设置为All。但是我删除了sgmlReader.IgnoreDtd = true;现在我的Xml文件看起来正常;)
希望这会有所帮助