您的位置:首页 > 编程语言 > Java开发

java中的dom,XmlPullParser 解析xml,

2015-05-24 16:55 337 查看
新建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();

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