问题是这样的。
有这样一段HTML字符串.
我需要获取Col的标签里的宽度值(可能是style='width:90px' 也可能直接是'width=90px')
替换到对应列的Td宽度.
难点1 上司要求不能转换成XML(这个已经实现了,考虑通用性)
难点2 table可能嵌套 其实说起来不复杂 逻辑还是有点绕的。
如果各位高手时间充足 不妨试试 练练手的同时 也帮为开辟一下例子或者思路。我正在试着实现
结果困扰我2天了 只实现了再没有嵌套Table下的替换 悲剧。
还要考虑colspan的问题。
转换之前 字符串
<table width='100%' border='1'> <col width='100px'> <tr> <td colspan='2'> <table width='100%' border='1'> <col /> <col width='91px' /> <col width='92px' /> <tr> <td align='left'> ISBN </td> <td align='left'> Title </td> <td align='right'> Price </td> <td align='right'> AAA </td> </tr> <tr> <td align='left'> 3476896 </td> <td align='left'> My first HTML </td> <td align='right'> $53 </td> <td align='right'> BB </td> </tr> <tr> <td align='left'> 3476897 </td> <td align='left'> My second HTML </td> <td align='right'> $56 </td> <td align='right'> CC </td> </tr> </table> </td> </tr> </table><table width='100%' border='1'> <tr> <td colspan='2' width='100px' > <table width='100%' border='1'> <tr> <td align='left'> ISBN </td> <td align='left' width='91px'> Title </td> <td align='right' width='92px'> Price </td> <td align='right'> AAA </td> </tr> <tr> <td align='left' > 3476896 </td> <td align='left' width='91px'> My first HTML </td> <td align='right' width='92px'> $53 </td> <td align='right'> BB </td> </tr> <tr> <td align='left'> 3476897 </td> <td align='left' width='91px'> My second HTML </td> <td align='right' width='92px'> $56 </td> <td align='right'> CC </td> </tr> </table> </td> </tr> </table>试试用Jumony Core这个HTML解析
首先谢谢回复 第一你说这个我没有时间来查阅和理解使用了。今天下午交东西
第二 上司的意思还是要用纯字符串操作实现。没办法。
@何小宝: 那就用正则表达式
@dudu: 写了一半 感觉正则实现不了 不然也不会来发帖了。
可能是我经验尚浅
只要为<col width='***px' /> 或<col style='width:90px' />
写个正则表达式就可以取到col 里面对应的宽度了。
您好 这个值 我已经取到了 关键是.
嵌套Table的时候的赋值问题。我卡在这里了
@何小宝: 赋值得的话,还真没有什么好办法。
平时都是用到取值。
如果你在嵌套table的时间能取到对应的td位置的话,那你不妨试试在对应的td处插入你要替换的宽度字符串(前后要加上空格),你可以试试吧