java xml 读取孙元素_2019-06-16 Java学习日记之XML&tomcat

XML的概述:

eXtendsible  markup language  可扩展的标记语言

XML有什么用?

1、可以ong来保存数据

2、可以用来做配置文件

3、数据传输载体

定义XML:

其实就是一个文件,文件的后缀为.xml

文档声明:

简单声明, version:解析这个xml的时候,使用什么版本的解析器解析

encoding:解析xml中的文字的时候,使用什么版本的解析器解析

standalone:no - 该文档会依赖关联其它文档,yes -- 这是一个独立的文档

encoding详解:

在解析这个xml的时候,使用什么编码去解析。  ---解码

文字,而是存储这些文字对应的二进制。那么这些文字对应的二进制到底是多少呢?根据文件使用的编码来得到

默认文件保存的时候,使用的是CBK的编码保存

所有想要xml能够正常的显示中文,有两种解决方法

1、让encoding也是CBK或者gb2312

2、如果encoding是utf-8,那么保存文件的时候也必须使用utf-8

3、保存的时候见到ANSI对应的其实是我们的本地编码GBK

为了通用,最好使用UTF-8编码保存,以及encoding都是UTF-8

元素定义(标签):

1、<>括起来的都叫元素。成对出现

2、文档声明下来的第一个元素叫做根元素(根标签)

3、标签里面可以嵌套标签

4、空标签

既是开始也是结束,一般配合属性来用

5、标签可以自定义

XML 命名规则

XML 元素必须遵循以下命名规则

名称可以包含字母、数字以及其他的字符

名称不能以数字或者标点符号开头

名称不能以字符“xml”(或者XML、xml)开头

名称不能包含空格

简单元素&复杂元素:

简单元素

元素里面包含了普通的文字

复杂元素

元素里面还可以嵌套其他的元素

属性的定义:

定义在元素里面,元素名称>

张三

18

李四

28

xml的注释:

与html的注释一样

不允许放置在文档的第一行。必须在文档声明的下面

CDATA区:

非法字符

严格的讲,在XML中仅有字符 "

<   <

&   &

XML解析:

获取元素里面的字符数据或者属性数据

XML的解析方式:

有很多种,但是常用的只有两种

DOM

SAX

Dom4j的基本用法:

element.element(“stu”):返回该元素下的第一个stu元素

element.element();返回该元素下的所有子元素

1、创建SaxReader对象

2、指定解析的xml

3、获取根元素

4、根据根元素获取子元素或者下面的子孙元素

try {

//1. 创建sax读取对象

SAXReader reader = new SAXReader(); //jdbc -- classloader

//2. 指定解析的xml源

Document document = reader.read(new File("src/xml/stus.xml"));

//3. 得到元素、

//得到根元素

Element rootElement= document.getRootElement();

//获取根元素下面的子元素 age

//rootElement.element("age")

//System.out.println(rootElement.element("stu").element("age").getText());

//获取根元素下面的所有子元素 。 stu元素

Listelements = rootElement.elements();

//遍历所有的stu元素

for (Element element : elements) {

//获取stu元素下面的name元素

String name = element.element("name").getText();

String age = element.element("age").getText();

String address = element.element("address").getText();

System.out.println("name="+name+"==age+"+age+"==address="+address);

}

} catch (Exception e) {

e.printStackTrace();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值