- Хроники. - -

Исправляем HTML для чтения как XML.

Posted By Ikutsin On 8 июля 2008 @ 15:17 In .NET C# | Comments Disabled

Меня долго интересовала тема преобразования HTML в XML. Без конвертирования такого рода парсить страницу можно только регулярными выражениями или еще хуже, какими-нибудь токенайзерами или даже методами для работы со строками. Эту задачу мне приходилось решать на разных языках. Когда дело дохло до C# я был во всеоружии.

Неожиданно для меня, гугл выдает далеко не лучшие решения для конвертации. Возможно, проблема в названии библиотеки, к которому я сам уже успел привыкнуть — SGMLReader [1].
Использовать SGMLReader можно следующим образом:

public string Convert(string content) {
SgmlReader reader = new SgmlReader();
reader.DocType = «html»;

StringReader sr = new System.IO.StringReader(content);
reader.InputStream = sr;
StringWriter sw = new StringWriter();
XmlTextWriter w = new XmlTextWriter(sw);
w.Indentation = 4;
w.IndentChar = \t;
w.Formatting = Formatting.Indented;
reader.Read();
while (!reader.EOF)
{
w.WriteNode(reader, true);
}
w.Flush();
w.Close();
return sw.ToString();
}


Article printed from Хроники.:

URL to article: /132-ispravlyaem-html-dlya-chteniya-kak-xml

URLs in this post:

[1] SGMLReader: http://sourceforge.net/project/showfiles.php?group_id=173074&package_id=246977

Copyright © 2008 Все, что меня окружает. All rights reserved.