十分钟内学会:将HTML格式化为合法的XML

导读:
   Question
  在网站中需要引入来自外部的HTML,这是很正常的事情。例如允许用户采用HTML直接发表时,或者聚合外部的Feed时,这时候外部的HTML就直接嵌入到我们的代码中。如果我们的网站是设计为符合XHTML的,那就可能因为引入外部HTML而破坏掉XHTML的合法性,甚至连合法的XML都做不到。这时候我们就需要将外部的HTML格式化为合法的XML,以方便我们的处理。
   Answer
  要将HTML转换为XML,最简单的做法就是利用SgmlReader了。你需要做的仅仅是去GotDotNet下载SgmlReader,然后复制我这段代码:使用SgmlReader将HTML转换为合法的XML,就那么简单。
  接着解释一下那段代码,它用到的SgmlReader,一个继承自XmlReader的类,并且在资源中内置了一个HTML.DTD。创建一个SgmlReader的实例,并且指定它使用的DocType是"HTML",那么它就知道这是指它内置的HTML.DTD。当然如果你不喜欢用这个DTD,你可以指定外部的其它DTD给它。接下来所做的事情,就是将它的读取放入一个XmlDocument中,然后再利用一个XmlTextWriter将XmlDocument写出来。如果你需要的结果是一个XmlDocument,那么最后一步就可以省略了。
  需要说明的是,SgmlReader所使用的HTML.DTD比我们通常用的loose.dtd还要宽松,所以它仅仅能保持在尽可能兼容输入HTML的情况下,输出合法的XML。如果你需要输出符合XHTML,就需要使用更加严格的DTD,或者对输出的合法XML再作处理。
  最后,如果你觉得本系列的文章对你有价值,可以考虑订阅Cat in dotNET,可选的方式包括通过Feed订阅(http://feeds.feedburner.com/CatChen/dotNET)和通过Email订阅(http://www.feedburner.com/fb/a/emailverifySubmit?feedId=573799)。

本文转自
http://www.cnblogs.com/cathsfz/archive/2007/02/07/643336.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值