xml学习整理笔记
1.XML:可扩展的标记语言
2.XML有什么作用:
1.可以用来保存数据
2.可以用来做配置文件
3.数据传输载体
3.XML的文档声明:
1.wersion:解析这个xml的时候,使用什么版本的解析器解析
<?xml version="1.0" ?>
2.encoding:解析xml中的文字时候,使用什么编码来翻译
<?xml version="1.0" encoding="gbk" ?>
3.standalone: no --该文档会依赖关联其他文档 yes--这是一个独立的文档
<?xml version="1.0" encoding="gbk" standalone="no" ?>
4.encoding详解:
1.保存xml文档的编码必须与解析的的编码一样,否则将无法解析。
2.ANSI和gbk都是本地编码,为了通用,一般采用utf-8的编码保存。
5.xml的元素定义:
1.文档声明下来第一个元素叫根标签。
2.标签可以嵌套。
3. 标签必须成对存在。
4.可以是空标签
5.标签可以自定义
6.xml的元素命名规则:
可以包含字母,数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符"xml",(或者XML,xml)开始
名称不能包含空格
如: <stus>
<stu id="10086">
<name>xxx</name>
<age>000</age>
<stu>
<stus>
6.xml的CDATA 区
非法字符:
< < 小于
> > 大于
& & 和号
&apos . 省略号
" "" 引号
如果某段字符串里面有过多的字符,并且里面包含了类似标签或者关键字的这种文字,不想让xml的解析器去解析时,可以使用CDATA来包装,不过这个CDATA一般很少见到,通常在服务器给客户端返回数据的时候才有:
<des><![CDATA[<a href="http://www.baidu.com">百度</a>]]></des>
7.xml的解析:其实就是获取元素里面的字符数据或者属性数据
1.xml解析的两种方法(针对这两种解析方式,给出的解决方案jaxp,jdom,dom4j):
SAX方法步骤:
1.创建一个SaxReader对象
SAXReader reader = new SAXReader();
2.制定解析的xml文件
Document document = reader.read(new File("src/xml01/stu.xml"));
3.获取根元素
Element rootElement = document.getRootElement;
4.根据根元素来获取子元素和子孙元素
List<Element> element=rootElement.elements;
5.遍历元素
遍历该集合
for (Element element : elements) {
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);
}
注意:
element.element("stu") :返回的是该元素下的第一个stu元素
element.elements() :返回的是该元素下所有的stu元素
Xpath:xml的路劲语言,在解析xml时,能够快速定位到一个具体的某个元素
步骤:1.添加jar依赖包
jaxen-1.1-beta-6.jar
2.在查找指定的节点时,使用Xpath语法规则。
//获取文档里所有name元素
List<Element> elements=rootElement.selectNodes("//name")
3.其他代码与上面类似
//获取到遍历的name值
for (Element element : elements) {
System.out.println(element.getText());
}
SAXReader reader = new SAXReader();