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 区

          
非法字符:

                       &lt        <      小于

                       &gt        >    大于

                       &amp     &  和号

                       &apos    .   省略号

                       &quot     ""  引号

           如果某段字符串里面有过多的字符,并且里面包含了类似标签或者关键字的这种文字,不想让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();

posted @ 2018-12-03 22:01  温火煮红茶  阅读(371)  评论(0编辑  收藏  举报