5 2月
<!doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
看见上面的一段文本是不是感觉很眼熟呢?
有没有思考过这段文字除了用来作文档标准声明外还有没有其他作用呢?
答案当然是有的了!
前几天,在写论坛的可视化编辑器的时候,遇到了XHTML标准的验证以及有害代码的过滤问题。想了好几天还是没想到好的办法去解决这个问题
今天在验证一段代码的时候突然想到,W3C的站点都可以验证文档的有效性
并把不符合标准的地方一一指出来,那么它就肯定有一个XSD或DTD之类的原型存在
一想到这,马上就联想到标准声明的语句里的URI了
一访问,果然是可以下载的DTD,马上就下载下来,开始编码工作
先创建一个验证对象的实例,然后设置验证类型为DTD
载入DTD文件和提交上来的文本,因为我在编辑器唯一可以确认的就是能保证提交上来的是符合XML结构的字符串,所以我不用担心文本不能被载入一个XmlDocument
如果不能被载入那么也肯定是不合法的提交了
完成以上步骤以后,再设置好验证失败的事件,在此事件里把对应不能通过验证的tag
列表找出来,遍历处理一下,有子节点或有文本值的直接把节点改成span,没有的空白节点则直接删除了。当然在这之前要判断一下是否属性元素,如果是的话,直接删除那个属性。一切完工。。。
0 评论 - "使用w3c的dtd验证客户端提交的html代码"
留言评论