您的位置:首页 > 其它

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);
}

}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: