关于用java解析从别的网站采集到的xml数据,解析后还要存入数据库 80

如题,用java解析从别的网站采集到的xml数据,解析后还要存入数据库???可以给个实例让我学学吗??... 如题,用java解析从别的网站采集到的xml数据,解析后还要存入数据库???
可以给个实例让我学学吗??
展开
 我来答
匿名用户
2014-12-08
展开全部
之一,在XML文档的DOM(文档对象模型)
被解析版本定义了一组接口。解析器读取整个文档,然后建立一个内存树结构,那么代码可以使用DOM接口来操作树结构。
优势:在内存中的整个文档树,操作方便;支持删除,,重新排列等功能;
缺点:整个文档到内存(包括未使用的节点),浪费了时间和空间;
使用:一旦解决多次访问这些数据所需的文件;
足够的硬件资源(内存,CPU)
二,SAX
DOM来解决问题,出现了SAX。
SAX,事件驱动。当解析器发现元素的开始和结束元素,文本,如开始或文档的末尾,发送事件,程序员编写代码来响应这些事件,保存数据。
优点:无需事先转移,占用资源少,整个文件;
SAX解析器代码比DOM解析器代码小,适合小程序,下载
缺点:不是持久的;在事件发生后,如果没有保存数据时,数据被丢失;
无状态;只能从事件文本,但我不知道该文本元素的哪一部分;
场合:小程序;只有少量的内容
XML文档几回访问的;
较少的内存的机器;
3,JDOM
降低DOM的,编码的SAX量,出现了JDOM;
优点:20-80原则,极大地减少了代码
使用量:为了实现简单的功能,如分析,创作等,但在底部,JDOM或使用SAX(最常见),DOM ,Xanan
4,JAXP
提供多个XML解析器一个统一的编程接口
更换解析器,而无需更改代码
使用:如果没有JDOM中,一般建议使用JAPX,代码的实现细节与各种解析器隔离。点击看详细的Java XML操作应该是最常用的开源包JDOM,
之卿飞B
2014-12-08 · TA获得超过1015个赞
知道小有建树答主
回答量:1086
采纳率:80%
帮助的人:518万
展开全部
这是android短信还原的一部分,可以参考一下
/** 短信还原 */
public static void reStore(Context cc, ProgressDialog pd) {
String path = Util.isSdcard();
if (null == path) {
Toast.makeText(cc, "未安装sdcard", 0).show();
return;
}
try {
Uri uri = Uri.parse("content://sms/");
FileInputStream fis = new FileInputStream(path + File.separator
+ "sms.xml");// 备份文件完整路径
// 删除存在短信
// getContentResolver().delete(url, null, null);
XmlPullParser parser = Xml.newPullParser();// 获得解析器
parser.setInput(fis, "UTF-8");
int type = parser.getEventType();
SmsInfo info = null;// 短信实体类
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if ("sms_list".equals(parser.getName())) {
// 短信条数
int max = Integer.parseInt(parser.getAttributeValue(0));
pd.setMax(max);
}
if ("sms".equals(parser.getName())) {// 一条短信开始了
info = new SmsInfo();
} else if ("body".equals(parser.getName())) {
info.body = parser.nextText();
} else if ("date".equals(parser.getName())) {
info.date = parser.nextText();
} else if ("type".equals(parser.getName())) {
info.type = parser.nextText();
} else if ("address".equals(parser.getName())) {
info.address = parser.nextText();
}
break;
case XmlPullParser.END_TAG:
if ("sms".equals(parser.getName())) {// 一条短信结束了
ContentValues values = new ContentValues();
values.put("date", info.date);
values.put("type", info.type);
values.put("address", info.address);
values.put("body", info.body);
// 添加到sqlite数据库(可以更换其它数据库)
cc.getContentResolver().insert(uri, values);
}
break;
default:
break;
}
type = parser.next();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式