XML数据解析之DOM解析
2014-02-15 21:13
288 查看
private void domParserXml(InputStream xmlInputStream) {
Log.i(TAG, "begin domParserXml");
try {
DocumentBuilderFactory xmlBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder xmlBuilder= xmlBuilderFactory.newDocumentBuilder();
if(xmlInputStream==null){
Log.e(TAG, "domParserXml xmlInputStream==null");
return;
}
Document xml=xmlBuilder.parse(xmlInputStream);
//获取根节点
Element rootElement= xml.getDocumentElement();
parserRoot(rootElement);
} catch (SAXException e) {
Log.w(TAG, "SAXException");
} catch (IOException e) {
Log.w(TAG, "IOException");
}catch (ParserConfigurationException e) {
Log.w(TAG, "ParserConfigurationException");
}
}
String monthvalue=null;
String dayvalue=null;
private void parserRoot(Element rootElement) {
NodeList nList=rootElement.getChildNodes();
int len=nList.getLength();
for (int i = 0; i < len; i++) {
Node xmlNode=nList.item(i);
String nameString=xmlNode.getNodeName();
short type=xmlNode.getNodeType();
if(nameString.equals("month")||nameString.equals("day")){
monthvalue=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
//Log.i(TAG, nameString +"value="+value);
}
if(nameString.equals("day")){
dayvalue=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
//Log.i(TAG, nameString +"value="+value);
}
if(nameString.equals("bill")){
String starttime=xmlNode.getAttributes().getNamedItem("starttime").getNodeValue();
String endtime=xmlNode.getAttributes().getNamedItem("endtime").getNodeValue();
String name=xmlNode.getAttributes().getNamedItem("name").getNodeValue();
String value1=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
ContentValues values=new ContentValues();
//values.put("_id", 1);
values.put("month", monthvalue);
values.put("day", dayvalue);
values.put("start", starttime);
values.put("end", endtime);
values.put("name1", name);
values.put("value", value1);
getContentResolver().insert(Uri.parse("content://com.stamars.sqlite.sqlite/channel"), values);
//Log.i(TAG, starttime+" "+starttime+" endtime "+endtime+" name "+name+" value "+value1);
}
//Log.i(TAG, "name="+nameString+",type="+type+",value="+value+",hasattr="+xmlNode.hasAttributes());
if(xmlNode.hasChildNodes()&&xmlNode.getNodeType()==Document.ELEMENT_NODE)
parserRoot((Element) xmlNode);
}
}
});
}
Log.i(TAG, "begin domParserXml");
try {
DocumentBuilderFactory xmlBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder xmlBuilder= xmlBuilderFactory.newDocumentBuilder();
if(xmlInputStream==null){
Log.e(TAG, "domParserXml xmlInputStream==null");
return;
}
Document xml=xmlBuilder.parse(xmlInputStream);
//获取根节点
Element rootElement= xml.getDocumentElement();
parserRoot(rootElement);
} catch (SAXException e) {
Log.w(TAG, "SAXException");
} catch (IOException e) {
Log.w(TAG, "IOException");
}catch (ParserConfigurationException e) {
Log.w(TAG, "ParserConfigurationException");
}
}
String monthvalue=null;
String dayvalue=null;
private void parserRoot(Element rootElement) {
NodeList nList=rootElement.getChildNodes();
int len=nList.getLength();
for (int i = 0; i < len; i++) {
Node xmlNode=nList.item(i);
String nameString=xmlNode.getNodeName();
short type=xmlNode.getNodeType();
if(nameString.equals("month")||nameString.equals("day")){
monthvalue=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
//Log.i(TAG, nameString +"value="+value);
}
if(nameString.equals("day")){
dayvalue=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
//Log.i(TAG, nameString +"value="+value);
}
if(nameString.equals("bill")){
String starttime=xmlNode.getAttributes().getNamedItem("starttime").getNodeValue();
String endtime=xmlNode.getAttributes().getNamedItem("endtime").getNodeValue();
String name=xmlNode.getAttributes().getNamedItem("name").getNodeValue();
String value1=xmlNode.getAttributes().getNamedItem("value").getNodeValue();
ContentValues values=new ContentValues();
//values.put("_id", 1);
values.put("month", monthvalue);
values.put("day", dayvalue);
values.put("start", starttime);
values.put("end", endtime);
values.put("name1", name);
values.put("value", value1);
getContentResolver().insert(Uri.parse("content://com.stamars.sqlite.sqlite/channel"), values);
//Log.i(TAG, starttime+" "+starttime+" endtime "+endtime+" name "+name+" value "+value1);
}
//Log.i(TAG, "name="+nameString+",type="+type+",value="+value+",hasattr="+xmlNode.hasAttributes());
if(xmlNode.hasChildNodes()&&xmlNode.getNodeType()==Document.ELEMENT_NODE)
parserRoot((Element) xmlNode);
}
}
});
}
相关文章推荐
- 前端工程师必备-网址篇(持续完善中)
- yii2 rbac 设计
- 关于流量,不可不说的秘密
- 国际名品SYSTEM入驻北京金融街购物中心__购物败家_YOKA时尚网
- 《来自星星的你》教授金秀贤衣装大起底_大湘_腾讯网
- SDUT 1646 Complicated Expressions
- C++ sizeof 运算符总结
- 网络流
- socket TCP编程模型实例1
- Poj2105
- 数据结构学习笔记2(链表 上 单链表基础操作&实现多项式相乘)
- android实现数据库和UI同步更新
- Unity3D学习笔记——IDE菜单栏
- ubuntu安装ganglia
- 信息资源管理之颗粒归仓
- php 配置
- sdut1642Simple Arithmetics(模拟)
- Nginx并发查看
- java学习笔记 异常知识小结
- 将windows 2003AD升级到2008AD及操作主机的转移和占用