java解析xml例子[共3页].doc

上传人:scccc 文档编号:11139539 上传时间:2021-07-04 格式:DOC 页数:3 大小:32.50KB
返回 下载 相关 举报
java解析xml例子[共3页].doc_第1页
第1页 / 共3页
java解析xml例子[共3页].doc_第2页
第2页 / 共3页
java解析xml例子[共3页].doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《java解析xml例子[共3页].doc》由会员分享,可在线阅读,更多相关《java解析xml例子[共3页].doc(3页珍藏版)》请在三一文库上搜索。

1、java 解析 xml 例子 【篇一: java 解析 xml 例子】关于 dom 解析的基础内容见:jaxp (java api for xml parsing ) :用于 xml 解析的 java api 。本文通过一个实际的代码例子来说明如何用 java 提供的 dom 相关的类和接口解析 xml :首先,是 xml 文档: books.xml?xml version=1.0 encoding=iso-8859-1? bookstore bookcategory=children title lang=en harry potter /title author j k.rowling /

2、author year 2005 /year price 29.99 /price /book bookcategory=cooking title lang=en everyday italian /title authorgiada de laurentiis /author year 2005 /year price 30.00 /price/book book category=web title lang=en learning xml /titleauthor erik t. ray /author year 2003 /year price 39.95 /price/book b

3、ook category=web title lang=en xquery kick start /titleauthor james mcgovern /author author per bothner /authorauthor kurt cagle /author author james linn /author authorvaidyanathan nagarajan /author year 2003 /year price 49.99/price /book /bookstore 把这个文档放在项目的根路径下,与 src目录平行,就可以使用相对路径来引用了。新建 java 类,

4、解析如下:package com.example.xml.dom;import java.io.file;importjavax.xml.parsers.documentbuilder;importjavax.xml.parsers.documentbuilderfactory;importorg.w3c.dom.document;import org.w3c.dom.element;importorg.w3c.dom.nodelist;public class domtest1 public static voidmain(string args) throws exception / st

5、ep 1: 获得 dom 解析器工厂 / 工厂的作用是创建具体的解析器 documentbuilderfactorydbf = documentbuilderfactory.newinstance(); / step 2 :获得具体的 dom 解析器 documentbuilder db =dbf.newdocumentbuilder(); / step 3: 解析一个 xml 文档,获得document 对象(根节点) / 此文档放在项目目录下即可document document = db.parse(new file(books.xml); / 根据标签名访问节点 nodelist li

6、st =document.getelementsbytagname(book);system.out.println(list length: + list.getlength(); / 遍历每一个节点 for (int i = 0; i list.getlength(); +i) system.out.println(-); / 获得元素,将节点强制转换为元素 element element= (element) list.item(i); / 此时 element 就是一个具体的元素 / 获取子元素:子元素 title 只有一个节点,之后通过 getnodevalue 方法获取节点的值 s

7、tring content0 =element.getelementsbytagname(title).item(0) .getnodevalue(); system.out.println(content0);/ 此处打印出为 null / 因为节点getnodevalue 的值永远为 null / 解决方法:加上 getfirstchild() string content =element.getelementsbytagname(title).item(0) .getfirstchild().getnodevalue(); system.out.println(title: + con

8、tent);/ 此处打印出书名 / 后面类似处理即可: content =element.getelementsbytagname(author).item(0) .getfirstchild(). getnodevalue(); system.out.println(author: + content); content=element.getelementsbytagname(year).item(0) .getfirstchild().getnodevalue(); system.out.println(year: + content); content =element.getelem

9、entsbytagname(price).item(0) .getfirstchild().getnodevalue(); system.out.println(price: + content); 具体过程参见注释。 首先,我们需要建立一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象。documentbuilderfactory dbf = documentbuilderfactory.newinstance();我们在这里使用 documentbuilderfactory 的目的是为了创建与具体解析器无关的程序,当 documentbuilderfactory 类的静态方法newi

10、nstance() 被调用时,它根据一个系统变量来决定具体使用哪一个解析器。又因为所有的解析器都服从于 jaxp 所定义的接口,所以无论具体使用哪一个解析器,代码都是一样的。所以当在不同的解析器之间进行切换时,值需要更改系统变量的值,而不用更改任何代码。这就是工厂所带来的好处。documentbuilder db = dbf.newdocumentbuilder(); 当获得一个工厂对象之后,使用它的静态方法 newdocumentbuilder() ,可以获得一个 documentbuilder 对象。这个对象代表了具体的 dom 解析器。解析器的具体实现对于程序来说并不重要。然后,我们就可

11、以利用这个解析器对文档进行解析了。sun 公司提供了默认的工厂和默认的解析器,上面的例子中就使用了默认的解析器。圣思园张龙老师 xml 视频教程。w3school xml dom 教程:java api 文档:【篇二: java 解析 xml 例子】读取本地的 xml 文件,通过 dom 进行解析, dom 解析的特点就是把整个 xml 文件装载入内存中,形成一颗 dom 树形结构,树结构是方便遍历和和操纵。dom 解析的特性就是读取 xml 文件转换为 dom 树形结构,通过节点进行遍历。这是 w3c 关于节点的概念如果 xml 中包含有大量的数据,由于 dom 一次性把 xml 装入内存中

12、的特性,所以 dom 不适合于包含大量数据的 xml 解析。当包含有大量 xml 的时候,用 sax 进行解析比较节省内存。 下面是一个运用 dom 进行解析 xml 文件的例子:xml 文件结构如下:xml version=1.0 encoding=iso-8859-1 bookstore bookcategory=cooking title lang=en everyday italian /title authorgiada de laurentiis /author year 2005 /year price 30.00 /price/book book category=childr

13、en title lang=en harry potter /titleauthor j k. rowling /author year 2005 /year price 29.99 /price/book book category=web title lang=en xquery kick start /titleauthor james mcgovern /author year 2003 /year price 49.99/price /book book category=web cover=paperback titlelang=en learning xml /title author erik t. ray /author year 2003/year price 39.95 /price /book /bookstore 创建解析 xml 的类如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1