码迷,mamicode.com
首页 > 编程语言 > 详细

java中的dom,XmlPullParser 解析xml,

时间:2015-05-24 17:27:00      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

新建xml文件:

<?xml version="1.0" encoding="UTF-8"?>  
<contacts>  
    <contact id="1">  
        <name>zhangsan</name>  
        <image src="http://192.168.1.103:8080/mymyweb/images/1.gif"/>  
    </contact>  
<contact id="2">  
        <name>zhangsan</name>  
        <image src="http://192.168.1.103:8080/mymyweb/images/1.gif"/>  
    </contact> 
</contacts> 

安卓版本dom解析:

private void createXmlFile(){

File linceseFile=new File(BOOKS_PATH);
try {
linceseFile.createNewFile();
} catch (Exception e) {
Log.e("IOException", "exception in createNewFile() method");
}
FileOutputStream fileos=null;
try {
fileos=new FileOutputStream(linceseFile);
} catch (Exception e) {
Log.e("FileNotFoundException","can‘t create FileOutputStream");
}
XmlSerializer serializer=Xml.newSerializer();
try {
serializer.setOutput(fileos,"UTF-8");
serializer.startDocument(null,true);
serializer.startTag(null,"books");
for(int i=0;i<3;i++){
serializer.startTag(null, "book");
serializer.startTag(null, "bookname");
serializer.text("Android教程"+i);
serializer.endTag(null, "bookname");
serializer.startTag(null, "bookauthor");
serializer.text("Frankie"+i);
serializer.endTag(null, "bookauthor");
serializer.endTag(null, "book");
}
serializer.endTag(null, "books");
serializer.endDocument();
serializer.flush();
fileos.close();
} catch (Exception e) {
// TODO: handle exception
}
Toast.makeText(getApplicationContext(), "创建XML文件成功!", Toast.LENGTH_LONG).show();
}
private void saxParserXML(){

}
private void domParserXML() {
File file=new File(BOOKS_PATH);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=null;
try {
db=dbf.newDocumentBuilder();
} catch (Exception e) {
e.printStackTrace();
}
Document doc=null;
try {
doc=db.parse(file);
} catch (Exception e) {
e.printStackTrace();
}
Element root=doc.getDocumentElement();
NodeList books=root.getElementsByTagName("book");
String res="本结果是通过dom 解析的:/n";
for(int i=0;i<books.getLength();i++){
Element book=(Element) books.item(i);
Element bookname=(Element)book.getElementsByTagName("bookname").item(0);
Element bookauthor=(Element)book.getElementsByTagName("bookauthor").item(0);
res+="书名:"+bookname.getFirstChild().getNodeValue()+" "+"作者"+bookauthor.getFirstChild().getNodeValue()+"/n";

}

tv.setText(res);

其中注意设定权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

安卓版本pullparser解析:

try {
XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp=factory.newPullParser();
xpp.setInput(new StringReader("<contacts><contact id=‘1‘>  <name>zhangsan</name>   <image src=‘http://192.168.1.103:8080/mymyweb/images/1.gif‘/></contact></contacts>"));
int eventType=xpp.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
switch(eventType){
case XmlPullParser.START_DOCUMENT:

System.out.println("Start document");
break;
case XmlPullParser.START_TAG:
System.out.println("Start tag"+xpp.getName());
if(xpp.getName().equals("name")){
Toast.makeText(getApplicationContext(), xpp.nextText(), Toast.LENGTH_SHORT).show();
}else if(xpp.getName().equals("image")){
Toast.makeText(getApplicationContext(), xpp.getAttributeValue(0), Toast.LENGTH_SHORT).show();
}
break;
case XmlPullParser.TEXT:
break;
case XmlPullParser.END_DOCUMENT:
break;
default  :
break;


}
eventType=xpp.next();
}

java中的dom,XmlPullParser 解析xml,

标签:

原文地址:http://blog.csdn.net/ligaogang/article/details/45953191

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!