日期:2014-05-17  浏览次数:20436 次

这个问题可能有一点难度 希望前辈们看看
是这样的。我有一个需求.需要将一段HTML字符串中样式没有单引号 或者双引号的改成单引号.
比如其中有一个标签<table border=0></table>  这样的话我需要用代码改成<table border='0'></table>
因为如果不替换的 我后面的将HTML字符串转换为XML 会报错。需要动态处理 不能手动修改HTML字符串。

字符串中的字符不确定有多少个这样的需要添加或修改的标签.
本来开始打算用正则去匹配

不过老大说 让我用一个递归算法来实现  从<html> 开始 一层一层的递归去寻找替换或者修改。
思路我知道 但是实现上 我遇到点瓶颈  希望各位不吝赐教 谢谢!
递归 HTML asp.net

------解决方案--------------------
所谓“思路”,就是html语法分析。

那种匹配个简单的词法,功能很差劲。只有依据语法来处理,例如 HtmlAgility 那样,才是语法分析。
------解决方案--------------------
这个是xml解析的问题,应该使用转义字符:

&lt; <  小于号
 
&gt; >  大于号
 
&amp; & 和
 
&apos; ’ 单引号
 
&quot; " 双引号

http://blog.csdn.net/teedry/article/details/5816687
------解决方案--------------------
建议还是用标准的xml解析程序去分析。
------解决方案--------------------
楼主问的也是关于XML针对特殊符号编码问题而已。
不需要去刻意去处理html。因为html变化很多样,楼主的关键点在于如何针对xml的特殊字符串进行格式化,单单"或'是没法真正解决问题的。

------解决方案--------------------
不知楼主是如何保存为XML文件的,若是可以的话,在XML文件中直接丢进<![CDATA[你的内容]]>中就可以了,不用考虑什么转义、单双引之类的问题
------解决方案--------------------
引用:
<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></t