SgmlReader 用来解析HTML,并转换为XML
资源分类:.NET类库
更新日期:9/3/2008
主页:http://code.msdn.microsoft.com/SgmlReader
语言:英文 授权形式:开源
运用.NET Framework类来解析HTML文件、读取数据并不是最容易的。虽然你可以用.NET Framework中的许多类(如StreamReader)来逐行解析文件,但XmlReader提供的API并不是“取出即可用(out of the box)”的,因为HTML的格式不规范。你可以用正则表达式(regular expression),但如果你对这些表达式运用不熟练,你可能开始时会觉得它们有些难。
Microsoft的XML大师Chris Lovett专门开发了一个SGML解析器,叫做SgmlReader,它可以解析HTML文件,甚至将它们转换成一个格式规范的结构。SgmlReader派生于XmlReader,这就是说,你可以像运用诸如XmlTextReader这样的类来解析XML文件那样来解析HTML文件。
这是一段示例代码:
C#代码
- public static XmlDocument ConvertHtmlToXml(string html)
- {
- using (SgmlReader sgmlReader = new SgmlReader()) {
- sgmlReader.DocType = "HTML";
- sgmlReader.InputStream = new StringReader(html);
- using (StringWriter stringWriter = new StringWriter()){
- using (XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter))
- {
- while (!sgmlReader.EOF) {
- xmlWriter.WriteNode(sgmlReader, true);
- }
- }
- }
- }
-
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(stringWriter.ToString());
-
- return xmlDoc;
- }
相关网址:
http://www.sifung.com/pages/743.shtm
http://msdn.microsoft.com/en-us/library/aa302299.aspx
下载页(SourceForge) SgmlReader 1.8 MSDN代码库