javaweb学习总结十(xml解析<JAXP以及DOM方式>)

一:XML解析技术

一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高。

1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包

2:jaxp解析xml代码如下

a:获取document文档树对象

 1 @Test
 2     // 获取document对象
 3     public void test1() throws Exception {
 4         // 1:获取解析工厂对象
 5         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 6         // 2:获取解析对象
 7         DocumentBuilder builder = factory.newDocumentBuilder();
 8         // 3:获取document对象
 9         Document doc = builder.parse("xml/books.xml");
10         System.out.println(doc);
11     }
 1     // 获取document对象方法
 2     private Document getDoc() throws Exception {
 3         // 1:获取解析工厂对象
 4         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 5         // 2:获取解析对象
 6         DocumentBuilder builder = factory.newDocumentBuilder();
 7         // 3:获取document对象
 8         Document doc = builder.parse("xml/books.xml");
 9         return doc;
10     }

b:获取元素节点

1 @Test
2     // 获取xml中的元素内容
3     public void test2() throws Exception {
4         Document doc = getDoc();
5         NodeList lists = doc.getElementsByTagName("name");
6         Node node = lists.item(0);
7         System.out.println("名称:" + node.getNodeName() + "\n内容:"
8                 + node.getTextContent());
9     }

c:递归遍历xml文件中所有节点

 1 @Test
 2     // 遍历所有的节点 递归
 3     public void test3() throws Exception {
 4         Document doc = getDoc();
 5         Node node = doc.getElementsByTagName("bookstore").item(0);
 6         list(node);
 7     }
 8
 9     private void list(Node node) {
10         if (node instanceof Element) {
11             System.out.println(node.getNodeName());
12         }
13         NodeList list = node.getChildNodes();
14         for (int i = 0; i < list.getLength(); i++) {
15             list(list.item(i));
16         }
17     }

d:获取元素属性

1 @Test
2     // 获取元素属性
3     public void test4() throws Exception {
4         Document doc = getDoc();
5         Element element = (Element) doc.getElementsByTagName("book").item(0);
6         String name = element.getAttribute("name");
7         System.out.println("name:" + name);
8     }

如果Node节点对象的方法比较少是,可以使用子类Element的方法。

时间: 2024-08-11 08:54:20

javaweb学习总结十(xml解析<JAXP以及DOM方式>)的相关文章

xml解析-jaxp之dom解析

package day06_parser.dom; /** * xml的解析技术:JAXP是Java API for XML Processing的英文字头缩写, * 中文含义是:用于XML文档处理的使用Java语言编写的编程接口.JAXP支持DOM.SAX.XSLT等标准. * 下面我们研究两种解析方式: * 1.dom解析 2.sax解析:Simple API for XML * 下面是dom解析的实例. * JAXP-DOM解析实例: * 下面的实例实现的功能是,通过javax.xml包实

javaweb学习总结九(xml解析以及调整JVM内存大小)

一:解析XML文件的两种方式 1:dom,document object model,文档对象模型. 2:sax,simple API for XML. 3:比较dom和sax解析XML文件的优缺点 a:dom 优点:dom解析方式会把xml文件加载到内存中,按照xml的结构解析成dom树,元素.文本.属性都会解析成对象,方便进行增删改查. 缺点:如果xml文件比较大,加载文件内存压力大. b:sax 优点:sax解析方式是一行一行的读取xml文件,所以不会造成内存压力. 缺点:不能进行增删改的

XML系列:(4)XML解析-JAXP的DOM解析方式读取XML

DOM.SAX和StAX只是解析方式,没有API. JAXP是SUN提供的一套XML解析API.    JAXP(Java API for XMLProcessing,意为XML处理的Java API) JAXP很好的支持DOM和SAX解析. JAXP开发包是JAVASE的一部分,它由java.xml.org.w3c.dom.org.xml.sax包及其子包组成 products.mxl <?xml version="1.0" encoding="UTF-8"

XML系列:(5)XML解析-JAXP的DOM解析方式修改XML

DOM.SAX和StAX只是解析方式,没有API. JAXP是SUN提供的一套XML解析API.JAXP(Java API for XMLProcessing,意为XML处理的Java API) JAXP很好的支持DOM和SAX解析. JAXP开发包是JAVASE的一部分,它由java.xml.org.w3c.dom.org.xml.sax包及其子包组成 1.以DOM解析方式修改XML 1.1.将Document树保存到文件中 package com.rk.xml.e_jaxp_dom_writ

Java学习之道:使用JAXP进行DOM解析( DocumentBuilderFactory、DocumentBuilder、Document)

1.javax.xml.parsers 包中的DocumentBuilderFactory用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,它不能直接实例化,但该类提供了一个newInstance方法 ,这个方法会根据本地平台默认安装的解析器,自动创建一个工厂的对象并返回 2.调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂. 3.调用工厂对象的 newDocumentBuilder

javaweb学习总结十二(JAXP对XML文档进行SAX解析)

一:JAXP使用SAX方式解析XML文件 1:dom解析与sax解析异同点 2:sax解析特点 二:代码案例 1:xml文件 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <students> 3 <student> 4 <name sid="111">李四</name> 5 <age>

XML系列:(6)XML解析-Dom4j的DOM解析方式读取XML

Dom4j工具,是非官方的,不在jdk中. 使用步骤: 1)导入dom4j的核心包. dom4j-1.6.1.jar 2)编写Dom4j读取xml文件的代码 animals.xml <?xml version="1.0" encoding="UTF-8"?> <Animals> <Cat id="c001" name="喵喵"> <Home>火星</Home> <

XML系列:(7)XML解析-Dom4j的DOM解析方式更新XML

Dom4j工具,是非官方的,不在jdk中. 使用步骤: 1)导入dom4j的核心包. dom4j-1.6.1.jar 2)编写Dom4j读取xml文件的代码 1.更新XML 1.1.写出内容到xml文档 package com.rk.xml.g_dom4j_write; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.io.SAXReader; im

javaweb学习总结十四(xml约束之Schema)

一:schema约束简单介绍 1:xml Schema的定义以及优缺点 2:xml schema入门 3:命名空间 这里http://www.itcast.cn 并没有什么具体的意义,只是命名而已. 4:xml schema的引入 5:命名空间引入schema 6:不使用命名空间引入schema 二:schema约束语法 这个可以参考xml schema的约束文档