SgmlReader и System.Xml Windows 8
Я пытаюсь преобразовать поток HTML в XML, используя SgmlReader для дальнейшего анализа. Это преобразование является частью приложения, которое я разрабатываю для Windows 8 Store. Ниже приведен метод преобразования 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();
}
The sgmlReader.WhitespaceHandling = WhitespaceHandling.All; это проблема, так как Xml.WhitespaceHandling нет. Есть ли другой способ сделать это?
1 ответ
Решение
После большого количества чтения и тестирования / отладки только что обнаружил, что sgmlReader.WhitespaceHandling = WhitespaceHandling.All не требуется по крайней мере в моем случае, так как sgmlReader.WhitespaceHandling по умолчанию имеет значение All. Однако я удалил sgmlReader.IgnoreDtd = true; и теперь мой XML-файл выглядит нормально;)
Надеюсь, это поможет кому-то