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

}

时间: 2024-10-07 01:49:35

java中的dom,XmlPullParser 解析xml,的相关文章

[学习手记] Java中利用DOM方法解析XML文件

需求分析: 在做一个利用API的小东西时需要对返回的XML格式的数据进行解析 详见文章: [开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary) 项目地址: https://github.com/hwding/seekDict 准备工作: 阅读Documentation 查阅相关代码 读入XML文件到程序内: 首先用DocumentBuilderFactory生成一个DocumentBuilder实例 DocumentBuilder docmumentBu

JAVA中使用DOM解析XML文件

JAVA中使用DOM解析XML文件: 创建DocumentBuilderFactory的对象                                 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 创建DocumentBuilder对象 通过documentBuilder对象的parser方法加载xml文件到当前项目下 获取所有XML文件内节点的集合    getElementsByTagName()方

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

DOM方式解析xml文件查看天气

1.步骤: ①创建文档解析器的工厂对象 ②得到文档解析器对象 ③获取输入流对象 ④通过解析器的parse方法解析is对象 转换成Document对象 ⑤返回的是文档的根节点 ⑥判断是否有孩子节点进行获取子节点转换成元素节点得到属性节点 ⑦得到具体的某个属性节点 2.解析元素节点.属性节点.文本节点: 3.界面搭建 界面搭建的相关代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

QT开发(四十二)——DOM方式解析XML

QT开发(四十二)--DOM方式解析XML 一.DOM简介 1.DOM简介 DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口. DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些.能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接将这颗树保存为硬盘上的一个 XML 文件. 2.XML DOM节

通过Dom方式解析xml文件

此项目通过简单的天气情况显示来实现xml文件的解析 1. 搭建环境 1)创建如下图的包.类及文件 2)布局文件的大概样式如下图所示,用到四个TextView控件和一个RadioGroup控件 3)china.xml文件的内容如下 <?xml version="1.0" encoding="UTF-8"?> <china dn="day"> <city cityname="南京" pyName=&q

android如何使用DOM来解析XML文件

对于以下的xml文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <books> <book email="zhoujunhui&quo

在iOS 开发中用GDataXML(DOM方式)解析xml文件

因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我们需要做如下配置: 当配置玩这个操作之后,再次进行编译的时候,系统还是报错,是因为我们还需要进行如下操作: