首页 新闻 会员 周边

HTML格式纠错 利用C#代码实现

0
悬赏园豆:20 [已解决问题] 解决于 2013-12-03 19:21

需求是这样的.比如有一段HTML字符串.
中间可能有些标签没有闭合,可能有些标签缺少<或者> 或者/
总之可能出现很多影响这个HTML字符串完整格式的错误。
我现在要实现一个HTML字符串纠错的帮助类。
所以考虑的东西比较多  如果有哪位高手闲的话 希望不吝赐教  练练手。
测试HTML字符串

 <body class='printBody'>       <div class="printFormMiddleContainer">
        <table width="100%" height="100%" cellspacing=0 cellpadding=0><tr><td valign="top"><div class="printTab"><table cellspacing=0 cellpadding=0 width="100%"><tr><td><table valign="top" cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td><table valign="top" cellspacing=0 cellpadding=0 class="secTable" width="100%" height="1%" style="display:block;"><col/><col/><tr valign="top"><td class="formCell" colspan="2"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:100%;"><col style="width:90px"/><col/><tr><td class="cellLabel" >名称:</td><td class="relatedInfoContent">aaaaaa</td></tr></table></td></tr><tr valign="top"><td class="formCell"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:100%;"><col style="width:90px"/><col/><tr><td class="cellLabel" >客户:</td><td class="relatedInfoContent">Aaronrdg</td></tr></table></td><td class="formCell"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:100%;"><col style="width:90px"/><col/><tr><td class="cellLabel" >报价人:</td><td class="relatedInfoContent">檀庭</td></tr></table></td></tr><tr valign="top"><td class="formCell"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:100%;"><col style="width:90px"/><col/><tr><td class="cellLabel" >报价时间:</td><td class="relatedInfoContent">2013-10-29 16:41</td></tr></table></td><td class="formCell"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:100%;"><col style="width:90px"/><col/><tr><td class="cellLabel"  style="text-align:0;"></td><td class="relatedInfoContent"></td></tr></table></td></tr></table></td></tr></table></td></tr><tr><td><table valign="top" cellspacing="0" cellpadding="0" border="0" width="100%"><tr height="18"><td class="sec bar">商品清单</td></tr><tr height=5><td></td></tr><tr><td><table valign="top" cellspacing=0 cellpadding=0 class="secTable" width="100%" height="100%" style="display:block;"><col width="50%"/><col width="50%"/><tr valign="top" height="100%"><td class="formCell" colspan="2"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:115px;"><col/><tr><td class="relatedInfoContent" style="padding-bottom:3px;"><table class="printTable" border="0" cellspacing="0" cellpadding="3"><tr><td class="printTdHeader" width="125" align="left">描述</td><td class="printTdHeader" width="125" align="left">规格</td><td class="printTdHeader" width="50" align="left">数量</td><td class="printTdHeader" width="75" align="left">单价 (¥)</td><td class="printTdHeader" width="75" align="left">小计 (¥)</td></tr><tr><td  class="printTd" align="left">成本测试</td><td  class="printTd" align="left">成本测试规格1</td><td  class="printTd" align="left">2.00</td><td  class="printTd" align="left">¥2,614.40</td><td  class="printTd" align="left">¥5,228.80</td></tr><tr><td  class="printTd" align="left">校园网站标准版</td><td  class="printTd" align="left"> </td><td  class="printTd" align="left">2.00</td><td  class="printTd" align="left">¥33.00</td><td  class="printTd" align="left">¥66.00</td></tr><tr><td  class="printTd" align="left">成本测试</td><td  class="printTd" align="left">成本测试规格2</td><td  class="printTd" align="left">1.00</td><td  class="printTd" align="left">¥3,300.00</td><td  class="printTd" align="left">¥3,300.00</td></tr><tr><td  class="printTd" align="left">参数5</td><td  class="printTd" align="left"> </td><td  class="printTd" align="left">1.00</td><td  class="printTd" align="left">¥1.00</td><td  class="printTd" align="left">¥1.00</td></tr><tr><td  class="printTd" align="left">参数8</td><td  class="printTd" align="left"> </td><td  class="printTd" align="left">1.00</td><td  class="printTd" align="left">¥2.00</td><td  class="printTd" align="left">¥2.00</td></tr><tr><td  class="printTd" align="left">参数9</td><td  class="printTd" align="left"> </td><td  class="printTd" align="left">1.00</td><td  class="printTd" align="left">¥4.00</td><td  class="printTd" align="left">¥4.00</td></tr><tr><td  class="printTd" align="left">总价</td><td  class="printTd" align="left"> </td><td  class="printTd" align="left">0.00</td><td  class="printTd" align="left">¥0.00</td><td  class="printTd" align="left">¥8,601.80</td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></div></td></tr></table></div>

</body>

何小宝的主页 何小宝 | 初学一级 | 园豆:19
提问于:2013-11-20 13:55
< >
分享
最佳答案
0

很早前有用过这个:SgmlReader,可以找找看对你有没有帮助。

I,Robot | 大侠五级 |园豆:9783 | 2013-11-21 23:54
其他回答(3)
0

这个需要正则高手现身才行了,而且查出来了怎么纠

收获园豆:20
大芝麻 | 园豆:4 (初学一级) | 2013-11-20 13:58

查询出来再补上。

支持(0) 反对(0) 何小宝 | 园豆:19 (初学一级) | 2013-11-20 14:27
0

这个你得定一个规则,比如遇到内部标签和外部标签都没闭合,是优先内部标签还是外部,或是更复杂的规则。 解析标签用到的是数据结构中的栈,以前做过表达式分析计算的程序,如果真要分析,建议在网上先看看怎么解析四则运算。

空明流光 | 园豆:106 (初学一级) | 2013-11-20 15:59

你的没有闭合包括单个标签没有闭合,还是也包括成对的标签没有闭合,比如 <a    这个连右尖括号都没有,就比较难办了

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2013-11-20 16:02
0

检查一段文本中的HTML标签是否闭合,若不闭合则修复

http://blog.csdn.net/crazygou/article/details/1643094

这个可以参考一下

袁家小黑球 | 园豆:1045 (小虾三级) | 2013-11-20 18:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册