首页 新闻 会员 周边 捐助

如何提取table的单元格信息?

0
悬赏园豆:30 [已解决问题] 解决于 2009-12-01 11:26

现有如下表格,是某页面里的一个表格内容

品种名称

规格

材质

产地

今日价格

昨日价格

涨跌

电解铜

1#

---

上冶

54450

53800

涨650

电解镍

1#

---

金川

131250

131250

涨1000

铝锭

A00

---

上海

15300

15300

不变

锌锭

1#

---

哈锌

18250

18050

涨200

锌合金

Z3

---

无锡

18850

18650

涨200

铅锭

1#

---

火炬

16300

16100

涨200

锡锭

1#`

---

云锡、广西

116000

116000

不变

镁锭

1#

---

山西

16900-17100

16900-17100

不变

在数据库中有一个表结构和这个表一样每个字段都可以对应,如何通过程序将每行每列分别提取出来插入到数据库中对应的表的字段,就是把网页的table的单元格中的内容写入数据库,实现方法不限并且要求具有通用性,分数不是问题,如果可以继续加分.
Jared.Nie的主页 Jared.Nie | 小虾三级 | 园豆:1940
提问于:2009-11-26 20:15
< >
分享
最佳答案
0

取每行每列的数据你可以使用javascript来做,比如你有一个table如下:<table border="1" cellspacing="0" cellpadding="0" width="536" id="t1">
<tbody>
<tr>
<td width="76">品种名称</td>
<td width="44">规格</td>
<td width="60">材质</td>
<td width="92">产地</td>
<td width="100">今日价格</td>
<td width="100">昨日价格</td>
<td width="64">涨跌</td>
</tr>
<tr>
<td width="76">电解铜</td>
<td width="44">1#</td>
<td width="60">---</td>
<td width="92">上冶</td>
<td width="100">54450</td>
<td width="100">53800</td>
<td width="64">涨650</td>
</tr>
<tr>
<td width="76">电解镍</td>
<td width="44">1#</td>
<td width="60">---</td>
<td width="92">金川</td>
<td width="100">131250</td>
<td width="100">131250</td>
<td width="64">涨1000</td>
</tr>
</tbody>
</table>哪么你现在可以如下脚本取得<script>
    window.onload = function() {
        var table = document.getElementById("t1");
        var trs = table.getElementsByTagName("TR"), tds, outHtm;
        if (trs) {
            for (var i = 0; i < trs.length; i++) {
                outHtm = "";
                tds = trs[i].getElementsByTagName("TD");
                if (tds) {
                    for (var j = 0; j < tds.length; j++) {
                    //注意如果tds[j]还有子元素,需要再进行处理
                        outHtm += tds[j].innerHTML + "******";
                    }
                }
                alert(outHtm);
            }
        }
    }
</script>

这样即可获取table中每个单元格的值,现在这些值你可以组合成xml文件post到服务器端然后进行解析入库,或者你也可以post一个json对象到服务器端解析入库,如果这些都不会的话,那你也完全可以使用一般参数提交的方式提交到服务器端再解析入库

收获园豆:30
西越泽 | 专家六级 |园豆:10775 | 2009-11-26 20:35
谢谢...问题得以解决...
Jared.Nie | 园豆:1940 (小虾三级) | 2009-11-30 15:38
其他回答(3)
0

我建议用后台方法处理,用WebBrowser控件,打开你这个Table所在的页面,然后通过读取Docmnent中的所指定的Tag总的数据即可。

Jetson Lee | 园豆:115 (初学一级) | 2009-11-27 09:35
0

假设table的id为tb1,那么可以通过document.getElementById("tb1").innerHTML获取table中的数据,然后将此字符串保存至服务器端进行解析.

Pwd | 园豆:158 (初学一级) | 2009-11-27 10:30
0

既然是网页那当然可以获取html代码撒。

然后可以用正则匹配替换得到你想要的数据啊。

Tom-X | 园豆:515 (小虾三级) | 2009-11-27 17:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册