• javaweb学习总结十(xml解析<SAX以及DOM方式>)


    一:XML解析技术

    一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高。

    1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包

    2:jaxp解析xml代码如下

    a:获取document文档树对象

     1 @Test
     2     // 获取document对象
     3     public void test1() throws Exception {
     4         // 1:获取解析工厂对象
     5         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     6         // 2:获取解析对象
     7         DocumentBuilder builder = factory.newDocumentBuilder();
     8         // 3:获取document对象
     9         Document doc = builder.parse("xml/books.xml");
    10         System.out.println(doc);
    11     }
     1     // 获取document对象方法
     2     private Document getDoc() throws Exception {
     3         // 1:获取解析工厂对象
     4         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     5         // 2:获取解析对象
     6         DocumentBuilder builder = factory.newDocumentBuilder();
     7         // 3:获取document对象
     8         Document doc = builder.parse("xml/books.xml");
     9         return doc;
    10     }

    b:获取元素节点

    1 @Test
    2     // 获取xml中的元素内容
    3     public void test2() throws Exception {
    4         Document doc = getDoc();
    5         NodeList lists = doc.getElementsByTagName("name");
    6         Node node = lists.item(0);
    7         System.out.println("名称:" + node.getNodeName() + "
    内容:"
    8                 + node.getTextContent());
    9     }

    c:递归遍历xml文件中所有节点

     1 @Test
     2     // 遍历所有的节点 递归
     3     public void test3() throws Exception {
     4         Document doc = getDoc();
     5         Node node = doc.getElementsByTagName("bookstore").item(0);
     6         list(node);
     7     }
     8 
     9     private void list(Node node) {
    10         if (node instanceof Element) {
    11             System.out.println(node.getNodeName());
    12         }
    13         NodeList list = node.getChildNodes();
    14         for (int i = 0; i < list.getLength(); i++) {
    15             list(list.item(i));
    16         }
    17     }

    d:获取元素属性

    1 @Test
    2     // 获取元素属性
    3     public void test4() throws Exception {
    4         Document doc = getDoc();
    5         Element element = (Element) doc.getElementsByTagName("book").item(0);
    6         String name = element.getAttribute("name");
    7         System.out.println("name:" + name);
    8     }

    如果Node节点对象的方法比较少是,可以使用子类Element的方法。

  • 相关阅读:
    一个重构眼中的“项目管理”
    vim显示行号、语法高亮、自动缩进的设置
    python中的try/except/else/finally语句--自我小结
    python 列表函数
    python异常处理
    gerrit使用总结
    数据访问对象模式
    组合实体模式
    业务代表模式
    MVC模式
  • 原文地址:https://www.cnblogs.com/warrior4236/p/5744828.html
Copyright © 2020-2023  润新知