java中的dom,XmlPullParser 解析xml,

新建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();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值