java获取html内的内容

哪位高手帮我实现一下,谢谢!:一个html,里面至少有一个table(且只有一个table),假设是tb1,现在我想把tb1的最后一个<tr>内的<td>里的内容读取来,... 哪位高手帮我实现一下,谢谢!:
一个html,里面至少有一个table(且只有一个table),假设是tb1,现在我想把tb1的最后一个<tr>内的<td>里的内容读取来,放到一个字符串数组中.
示例:
对于以下的<tr>
<tr>
<TD bgColor=#3c57c4><b>帐务时间</b></TD>
<TD bgColor=#3c57c4 align=center><i><font size=+2 color=blue>用户标识</font></i></TD>
<TD bgColor=#3c57c4>客户标识 </TD>
<TD bgColor=#3c57c4>用户帐号 </TD>
</tr>
取出结果:
content[0]="帐务时间"
content[1]="用户标识"
content[2]="客户标识"
content[2]="用户帐号"

从html页上获得tb1中获得最后一个<tr>没有问题,现在问题是解析上面贴出的<tr>里面的部分.
注意:1.以上的<html>要当作一个java字符串处理(这里特别说明,html页面不是可以浏览的html页面,是保存在数据库里的一个字符串,所以请您不要说用javascript来获取值).
2.td可能有很多的属性,td里面的内容可能有很多其它标签的修饰,这些是不确定的
谢谢大家,特别谢谢小桥流水人家,因为只有你写了一个完整的程序,但是事实上我采用了ubibin 的建议,因为这个作为一个拿去应用的东西,容错性高点次行.smluyi显然是题目都没有看完就随便给我回答.我在提问中已经特别强调,不能用javascript
展开
 我来答
趣事情
2015-10-27 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
简单实现:
HtmlRequest类的内容:
[java] view plaincopy
package com.capinfotech.net;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HtmlRequest {

public static void main(String[] args) throws IOException {
URL url = new URL("http://www.163.com/");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
InputStream inputStream = conn.getInputStream(); //通过输入流获得网站数据
byte[] getData = readInputStream(inputStream); //获得网站的二进制数据
String data = new String(getData, "gb2312");
System.out.println(data);

}

public static byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}

bos.close();
return bos.toByteArray();
}

}
这样就能获得http://www.163.com的内容,在控制台会打印输出
ubibin
2008-06-04
知道答主
回答量:18
采纳率:0%
帮助的人:13.2万
展开全部
小程序里,字符串可以按对去截td,

建议你用开源的java parse html库,这样专业一点,容错性高一点。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smluyi
2008-06-04 · TA获得超过1356个赞
知道大有可为答主
回答量:515
采纳率:0%
帮助的人:812万
展开全部
可以用javascript来取值,楼主如果用java来取就是本末倒置了,在<body onload>里面加载一段javascript,
用 innerText取出最后<tr>里面的值,然后可以存到一个<input type="hidden">中,提交到后台,再保存到数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小乔流水人家要
2008-06-04 · TA获得超过1454个赞
知道答主
回答量:118
采纳率:0%
帮助的人:0
展开全部
我们假设最后一个tr里的内容为字符串str。

StringTokenizer st = new StringTokenizer(str, "<");
while(st.hasMoreTokens()){

String el = st.nextToken();
if (!el.endsWith(">")){
int index = el.indexOf(">");
String result;
if (index == -1){
result = el;
} else{
result = el.substring(index);
}
content[i] = result;
i++;
}
}
思路就是,用“<”作为标识分割字符串,这样除显示内容以外的子字符串都是以“>”结尾。将得到的内容截掉标签部分就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江湖喵喵喵
2008-06-04 · TA获得超过360个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:43.8万
展开全部
疯啦,为什么不用dom4j????方法都跟你写好了,直接调用就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式