java基础71 XML解析相关知识点(网页知识)

1、xml解析的含义

xml文件除了给开发者看,更多情况下是使用程序读取xml文件中的内容

2、XML的解析方式

DOM解析
    SAX解析

3、xml的解析工具

3.1、DOM解析工具

1.JAXP(oracle-Sun公司官方)
    2.JDOM工具(非官方)
    3.Dom4j工具(非官方的)。 三大框架(默认读取xml的工具就是DOM4j)

3.2、SAX解析工具

1.Sax解析工具(oracle-Sun公司官方)

4、XML的解析原理

4.1、DOM解析的原理

xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一个Document的对象树,通过document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容.

4.2、SAX解析的原理

待续

5、实例

 1 package com.bw.test;
 2
 3 import org.dom4j.Document;
 4 import org.dom4j.DocumentException;
 5 import org.dom4j.io.SAXReader;
 6
 7 public class Demo1 {
 8     /*
 9      * 第一个Dom4j读取xml文档的例子
10      *
11      * */
12     public static void main(String[] args) {
13         try {
14             //1.创建一个xml解析器对象
15             SAXReader reader = new SAXReader();
16             //2.读取xml文档,返回Document对象
17             Document doc= reader.read("./src/contact.xml");
18             System.out.println(doc);
19         } catch (DocumentException e) {
20             // TODO Auto-generated catch block
21             e.printStackTrace();
22         }
23     }
24 }

contact.xml文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <contactList>
 3     <contact id="001" sex="男">
 4         <name>张三</name>
 5         <age>18</age>
 6         <phone>15779593710</phone>
 7         <email>[email protected]</email>
 8         <qq>872855221</qq>
 9         <abc>
10             <a><b></b></a>
11         </abc>
12     </contact>
13     <contact id="038">
14         <name>李四</name>
15         <age>20</age>
16         <phone>1314580</phone>
17         <email>[email protected]</email>
18         <qq>832144529</qq>
19     </contact>
20 </contactList>

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9550048.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

原文地址:https://www.cnblogs.com/dshore123/p/9550048.html

时间: 2024-08-04 21:18:43

java基础71 XML解析相关知识点(网页知识)的相关文章

java基础篇---XML解析(二)

XML解析之最流行的方式:DOM4J dom4j是使用java语言编写的,用于读,写,操作XML的一套组件 JDOM=DOM修改文件的优点+SAX读取快速的优点 dom4j是一个开源的java组件,可从http://sourceforge.net/projects/dom4j/files/下载.其解压后有一个dom4j-1.6.1.jar文件,这个就是需要引入的包,其dom4j的所有的接口都在org.dom4j包中定义,主要接口如下: XML写入文件:DOM4JWriter.java packa

一个ios工程相关的配置小问题解决介绍,gdata xml解析相关

在我们ios的开发中gdataxml是一个常用的开源实现,很多第三方的库在实现里也会加入它的源码.我们在使用此类库或者直接使用gdataxml库时,切记要在工程中引入libxml2这个框架,否则编译会报错,提示类似下面: Undefined symbols for architecture armv7: "_xmlDocDumpMemory", referenced from: xxx 引入该框架问题即可解决. 一个ios工程相关的配置小问题解决介绍,gdata xml解析相关,码迷,

命令行选项解析相关知识点

最近读源码的时候碰到命令行解析相关的知识点,比较模糊.摘取出来做个记录 1.最基本的main函数头 main(int argc,char *argv[ ]) 如果只输入程序名xxx,则argc=1,argv[0]指向输入的程序路径及名称./xxx;如果输入xxx para_1(程序名加一个参数),则argc=2,argv[0] 指向输入的程序路径及名称,argv[0]指向参数para_1字符串.以此类推,也就是char  *argv[]:argv 是一个指针数组,其元素个数是argc,存放的是指

【Web基础】XML解析工具比较

DOM解析: 一次全部读入内存,随意存放修改,读取任何部分,次数无限制,异于开发,系统为开发者自动建立DOM树,XML对象模型由系统自动提供.缺点:需要一次读入内存,受文件大小限制,耗内存. SAX解析: 优点:顺序读入一部分进内存,不会一次加载,不受文件限制,由于部分读取.缺点:只能对文件按顺序读取解析,不能随机存取,不能修改,开发复杂,用户需自己定义时间处理.但开发比较灵活,可以用SAX建立自己的XML对象模型. JDOM:综合DOM解析和SAX解析的优点. DOM4J:强大,Hiberna

[Java基础回顾] XML的书写规范与解析.

前言今天天气大好, 起了个大早开始总结一些常用的基础知识. XML一直来说都很陌生, 使用大多是用于配置文件, 之前并没有细究过其中的约束规范, 今天刚好没事来学习并总结下. 1,XML基础介绍 XML 指可扩展标记语言(EXtensible Markup Language),也是一种标记语言,很类似 HTML.它的设计宗旨是传输数据,而非显示数据它;标签没有被预定义,需要自行定义标签. xml的作用: XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行

死磕Spring系列之三,XML解析相关

通过第2章的介绍,应该知道Spring如何从XML一步步解析成BD对象并注册到容器中,这一过程有个概要认识了. 接下来开始详细分析与XML相关的那些事. 一.首先看一下使用的XML文档. <?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http

JAVA常用的XML解析方法

转并总结自(java xml) JAVA常用的解析xml的方法有四种,分别是DOM,JAX,JDOM,DOM4j xml文件 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>1000001</NO> <ADDR>达达木图收费站</ADDR> </VALUE> <VALUE> <NO

java中string内存的相关知识点

(一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用. 2.堆:存放用new产生的数据,其中清理垃圾采用垃圾回收机制. 在堆中产生了一个数组或对象后,还可以 在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了

Java基础学习之-多线程学习知识点的学习

Java语言从设计之初就把多线程作为语言的核心, 至少从以下几点可以看出: 1. Object对象的wait和notify机制. 2. Thread类在lang包中. 3. synchronized volatile关键字. 虽然多线程是Java语言本身的特性,但是线程并不是Java语言独有的东西,而是操作系统的特性.Java在语言层面进行了封装,使其使用更简单. 多线程存在的价值在哪里呢? 内存读写,磁盘IO, 网络传输的速率远远低于CPU处理数据的速度.所以在大部分场景下,CPU是闲置的.有