XMl文档

 <?xml version = "1.0" encoding = "UTF-8"?>
<books>
<book bookno="001">
<title> java 编程</title>
<author> me </author>
<price> 80 </price>
</book>
<book bookno="002">
<title> android 编程</title>
<author> me </author>
<price> 70 </price>
</book>
</books>

Dom解析程序

 /*
* Dom 将文档进行扫描建立树状document文档有全部的节点 根节点为文档 子节点为每个实体 每个实体有属性子节点
* 对document 文档进行遍历 输出文档内容
* */
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; public class DomXMLParser implements XMLParser { @Override
public List<Book> parseXML(String filename) {
List<Book> list = new ArrayList<Book>();
//文档生成器工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document document = null;
try {
//文档生成器对象
DocumentBuilder builder = factory.newDocumentBuilder();
//解析得到文档对象
document = builder.parse(new File(filename));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//导入w3c中的node类
Node rootnode = (Node) document.getDocumentElement();
//获得book元素列表
NodeList bookelementlist = rootnode.getChildNodes();
for(int i = 0 ;i<bookelementlist.getLength();i++){
// 获得单个book元素
Node bookelement = (Node) bookelementlist.item(i);
if(bookelement.getNodeName().equals("book")){
Book book =new Book();
NamedNodeMap map = bookelement.getAttributes();
Node booknonode = (Node) map.getNamedItem("bookno");
String booknostring = booknonode.getNodeValue();
book.setNo(booknostring.trim());
NodeList subbookelementlist = bookelement.getChildNodes();
for(int j = 0;j<subbookelementlist.getLength();j++){
Node subelementnode = (Node) subbookelementlist.item(j);
String subelementnamestring = subelementnode.getNodeName();
if(subelementnamestring.equals("title")){
book.setAuthor((subelementnode.getTextContent().trim()));
}
if(subelementnamestring.equals("author")){
book.setTitle(subelementnode.getTextContent().trim());
}
if(subelementnamestring.equals("price")){
book.setPrice(Double.parseDouble(subelementnode.getTextContent().trim()));
}
}
list.add(book);
}
}
return list;
} public static void main(String[] args) {
DomXMLParser parser = new DomXMLParser();
List<Book> list = parser.parseXML("src\\book.xml"); System.out.println("解析结果:");
for(Book book:list){
System.out.println(book);
} } }

Dom解析XMl文档的更多相关文章

  1. 使用DOM解析XML文档

    简单介绍一下使用DOM解析XML文档,解析XML文件案例: <?xml version="1.0" encoding="UTF-8"?> -< ...

  2. 精讲 org.w3c.dom(java dom)解析XML文档

    org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...

  3. org.w3c.dom(java dom)解析XML文档

    位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析 ...

  4. Java中Dom解析xml文档

    xml文档 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  5. java解析xml文档(dom)

    DOM解析XML文档 读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵. DOM解析的特性就是读取xml文件 ...

  6. DOM生成XML文档与解析XML文档(JUNIT测试)

    package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...

  7. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  8. Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术

    一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...

  9. JAVA读取XML,JAVA读取XML文档,JAVA解析XML文档,JAVA与XML,XML文档解析(Document Object Model, DOM)

    使用Document Object Model, DOM解析XML文档 也可参考我的新浪博客:http://blog.sina.com.cn/s/blog_43ac5543010190w3.html ...

随机推荐

  1. POJ 1741 Tree ——点分治

    [题目分析] 这貌似是做过第三道以Tree命名的题目了. 听说树分治的代码都很长,一直吓得不敢写,有生之年终于切掉这题. 点分治模板题目.自己YY了好久才写出来. 然后1A了,开心o(* ̄▽ ̄*)ブ ...

  2. 解决 sqlalchemy 报错:(1193, "Unknown system variable 'tx_isolation'")

    1出现此报错的原因是使用的mysql8.0 以前用的是:tx_isolation 现在用是: transaction_isolation a.通过升级 sqlalchemy 的方法可以解决此问题, p ...

  3. uva 10090 二元一次不定方程

    Marbles Input: standard input Output: standard output I have some (say, n) marbles (small glass ball ...

  4. Linux服务器性能分汇总

    工具使用: vmstat 查看cpu时间.内存.IO的情况. 参考:http://linuxcommand.org/man_pages/vmstat8.html 基本用法: [root@root ~] ...

  5. POJ2560 Freckles

    Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Description In an epis ...

  6. python虚拟环境使用

    Window 下创建python的虚拟环境 下载工具 pip install virtualenv 创建虚拟环境目录 # 注意此命令创建的虚拟环境目录是在当前目录下 virtualenv testen ...

  7. 533. Lonely Pixel II

    Given a picture consisting of black and white pixels, and a positive integer N, find the number of b ...

  8. python内存诊断

    1.计算内存地址: str1 = 'shn' print id(str1) 2.计算内存大小,返回字节数 str1 = 'td' print sys.getsizeof(str1) 3.

  9. Application具体解释(一)

     1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件.当android程序启动时系统会创建一个 applicati ...

  10. Redhat常用指令

    yum 部分常用的命令包括: 自动搜索最快镜像插件:yum install yum-fastestmirror 安装yum图形窗口插件:yum install yumex 查看可能批量安装的列表:yu ...