首页 新闻 会员 周边 捐助

Html字符串操作问题 再发一帖

0
悬赏园豆:40 [已解决问题] 解决于 2014-02-07 14:55

问题是这样的。
有这样一段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>
 
使用c# 代码实现  不考虑JS JQ. 不好意思 希望各位不吝赐教
何小宝的主页 何小宝 | 初学一级 | 园豆:19
提问于:2013-12-09 14:15
< >
分享
最佳答案
0

试试用Jumony Core这个HTML解析

参考:Jumony Core 3,真正的HTML引擎,正式版发布

收获园豆:40
dudu | 高人七级 |园豆:29732 | 2013-12-09 14:18

首先谢谢回复  第一你说这个我没有时间来查阅和理解使用了。今天下午交东西

第二 上司的意思还是要用纯字符串操作实现。没办法。

何小宝 | 园豆:19 (初学一级) | 2013-12-09 14:40

@何小宝: 那就用正则表达式

dudu | 园豆:29732 (高人七级) | 2013-12-09 14:42

@dudu: 写了一半 感觉正则实现不了 不然也不会来发帖了。

可能是我经验尚浅

何小宝 | 园豆:19 (初学一级) | 2013-12-09 15:39
其他回答(1)
0

只要为<col width='***px' /> 或<col style='width:90px' />

写个正则表达式就可以取到col 里面对应的宽度了。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-09 15:32

您好  这个值 我已经取到了  关键是.

嵌套Table的时候的赋值问题。我卡在这里了

支持(0) 反对(0) 何小宝 | 园豆:19 (初学一级) | 2013-12-09 15:39

@何小宝: 赋值得的话,还真没有什么好办法。

平时都是用到取值。

如果你在嵌套table的时间能取到对应的td位置的话,那你不妨试试在对应的td处插入你要替换的宽度字符串(前后要加上空格),你可以试试吧

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-09 15:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册