码迷,mamicode.com
首页 > 其他好文 > 详细

XML解析

时间:2017-08-29 12:44:45      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:enc   ping   pac   select   演示   ace   tno   style   new   

xml解析:
    解析方式:
        1.sax:特点:逐行解析,只能查询.
        2.dom:特点:一次性将文档加载到内容中,形成一个dom树.可以对dom树curd操作
    解析技术:
        JAXP:sun公司提供支持DOM和SAX开发包
        JDom:dom4j兄弟
        jsoup:一种处理HTML特定解析开发包
        ★dom4j:比较常用的解析开发包,hibernate底层采用。
演示用XML代码:
 
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5">
 3      <servlet>
 4           <servlet-name>HelloMyServlet</servlet-name>
 5           <servlet-class>cn.itcase.HelloMyServlet</servlet-class>
 6      </servlet>
 7      <servlet-mapping>
 8           <servlet-name>HelloMyServlet</servlet-name>
 9           <url-pattern>/hello</url-pattern>
10      </servlet-mapping>
11 </web-app>
 
    dom4j技术进行查询操作.
        使用步骤:
            1.导入jar包
            2.创建一个核心对象 SAXReader
                new SAXReader();
            3.将xml文档加载到内存中形成一棵树
                Document doc=reader.read(文件)
            4.获取根节点
                Element root=doc.getRootElement();
            5.通过根节点就可以获取其他节点(文本节点,属性节点,元素节点)
                获取所有的子元素
                    List<Element> list=root.elements()
                获取元素的指定属性内容
                    String value=root.attributeValue("属性名");
                获取子标签标签体:遍历list 获取到每一个子元素
                    String text=ele.elementText("子标签名称")
代码演示:
 
 1     //创建对象
 2           SAXReader saxReader = new SAXReader();
 3           //将xml文档加载到内存当中
 4           Document document = saxReader.read("D:\\workspace\\mylanqiao\\src\\day8_26\\demo.xml");
 5           //获取根节点
 6           Element root = document.getRootElement();
 7           //通过根节点操作其他节点
 8           List<Element> elements = root.elements();
 9           //操作1:获取所有子元素
10           for (Element ele : elements) {
11               //操作2:获取元素的指定属性内容
12               //操作3:获取标签体,遍历list获取每一个子元素
13               /*String elementText = ele.elementText("servlet-name");
14               System.out.println(elementText);
15               */
16               //获取另一个标签体
17                System.out.println(ele.elementText("url-pattern"));
18               /*
19                * 第一个标签没有就返回一个空值
20                * null
21               /hello*/
22           }
23           //获取根节点的属性
24           System.out.println(root.attributeValue("version"));
      
    xpath解析技术:(扩展)
        依赖于dom4j
            使用步骤:
                1.导入jar包(dom4j和jaxen-1.1-beta-6.jar)
                2.加载xml文件到内存中
                3.使用api
                    selectNode("表达式");
                    selectSingleNode("表达式");
            表达式的写法:
                / 从根节点选取
                // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
                例如一个标签下有一个id属性且有值  id=2;
                    //元素名[@属性名=‘属性值‘]
                    //元素名[@id=‘2‘]
代码演示:
         
 1  //加载dom树
 2           Document document = new SAXReader().read("D:\\workspace\\mylanqiao\\src\\day8_26\\demo.xml");
 3           //获取多个节点
 4 //        List<Element> selectNodes = document.selectNodes("/web-app/servlet/servlet-name");
 5 //        Element ele = selectNodes.get(0);
 6 //        System.out.println(ele.getText());
 7 //
 8           //获取某个节点
 9           Element element = (Element) document.selectSingleNode("//servlet/servlet-name");
10           //返回值是Node,强转成element,//代表不从根节点开始找
11           System.out.println(element.getText());

 

XML解析

标签:enc   ping   pac   select   演示   ace   tno   style   new   

原文地址:http://www.cnblogs.com/anzhi/p/7447454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!