zoukankan      html  css  js  c++  java
  • Dom4j解析xml

    1、为什么使用dom4j解析xml

      DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用

    2、所需jar包

      dom4j-1.6.1.jar

    3、使用方法

    <?xml version="1.0" encoding="UTF-8"?>
    <books id="book" bean="b">
        <book name="java">
            <author>黄观众</author>
            <price>10</price>
            <publisher>中国人民出版社</publisher>
        </book>
        <book name="javascript">
            <author>任先琪</author>
            <price>20</price>
            <publisher>中国人民出版社</publisher>
        </book>
    </books>
     1 package com;
     2 
     3 import java.io.InputStream;
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.dom4j.Attribute;
     8 import org.dom4j.Document;
     9 import org.dom4j.Element;
    10 import org.dom4j.io.SAXReader;
    11 
    12 public class ParseXml {
    13     
    14     public static void main(String[] args) throws Exception {
    15         SAXReader sax = new SAXReader();
    16         //获取文件流
    17         InputStream is = ParseXml.class.getClassLoader().getResourceAsStream("test.xml");
    18         Document doc = sax.read(is);
    19         //获取文档跟元素对象
    20         Element root = doc.getRootElement();
    21         //获取根元素的名称、属性
    22         System.out.println(root.getName());
    23         //获取跟元素中的所有属性 方式一
    24         List<Attribute> attrlist = root.attributes();
    25         for(Attribute attr:attrlist){
    26             System.out.println(attr.getName()+":"+attr.getValue());
    27         }
    28         //获取跟元素中的所有属性 方式二
    29         Iterator<Attribute> it = root.attributeIterator();
    30         while(it.hasNext()){
    31             Attribute attr = it.next();
    32             System.out.println(attr.getName()+":"+attr.getValue());
    33         }
    34         //知道属性名称的情形下获取属性
    35         System.out.println(root.attributeValue("id"));
    36         System.out.println(root.attributeValue("bean"));
    37         //获取属性的个数
    38         System.out.println(root.attributeCount());
    39         
    40         /*************************************************/
    41         
    42         //获取该节点下的所有子元素 方式一
    43         List<Element> elelist = root.elements();
    44         for(Element e:elelist){
    45             System.out.println(e.getName());
    46         }
    47         //获取该节点下的所有子元素 方式二
    48         Iterator<Element> eleit = root.elementIterator();
    49         while(eleit.hasNext()){
    50             Element attr = eleit.next();
    51             System.out.println(attr.getName());
    52         }
    53         //知道元素名称的时候获取该元素
    54         Element ele = root.element("book");
    55         System.out.println(ele.getName());
    56         //获取元素文本内容
    57         String author = ele.elementText("author");
    58         System.out.println(author);
    59         //获取元素后获取文本
    60         String eletext = ele.element("author").getText();
    61         System.out.println(eletext);
    62         //node
    63         System.out.println(root.node(1).getName());
    64         System.out.println(root.node(3).getName());
    65         
    66     }
    67 
    68 }
  • 相关阅读:
    VScode 修改中文字体
    missing KW_END at ')' near '<EOF>'
    SQL inner join, join, left join, right join, full outer join
    SQL字符替换函数translater, replace
    SQL COOKBOOK SQL经典实例代码 笔记第一章代码
    sqlcook sql经典实例 emp dept 创建语句
    dateutil 2.5.0 is the minimum required version python
    安装postgresql后找不到服务 postgresql service
    Postgres psql: 致命错误: 角色 "postgres" 不存在
    【西北师大-2108Java】第十六次作业成绩汇总
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3816145.html
Copyright © 2011-2022 走看看