XML解析——Dom4j解析器

dom4j解析器

1.dom4j基本用法
    1.导入dom4j提供的jar包
    链接:https://pan.baidu.com/s/1yBCg-Jk_G-mT4MIgZwG0yA
    提取码:dt8x
    2.获取document
        *SAXReader reader = new SAXReader();
        *Document document = reader.read(url);
    3.document的父接口为Node
        *若在document里找不到的方法,可以在Node内找
    4.document的常用方法
       *getRootElement() 获取根节点,返回为 Element
    5.Element是接口,父接口为Node
        getParent() 获取父节点
        addElement 添加标签
        element(qname) 获取标签下面的第一个子标签,arg为标签名称
            elements(qname) 获取标签下面是这个名称的所有子标签.
        elements() 获取标签下面的所有一层子标签.
    
    public class Dom4jUtils {

public static final String PATH = "12_XML/src/com/sunny/xml/people.xml";

// 返回document
public static org.dom4j.Document getDocument(String path) {
    try {
        // 创建解析器
        SAXReader saxReader = new SAXReader();
        // 得到document
        Document document = saxReader.read(path);
        return document;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

// 回写xml方法
public static void xmlWriters(String path, Document document) {
    try {
        OutputFormat format = OutputFormat.createPrettyPrint();
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(path), format);
        xmlWriter.write(document);
        xmlWriter.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

    *可以提高开发速度,代码可维护性好

使用dom4j支持XPath的操作

1.可以直接获取某个元素
    1.获取元素常见形式
*第一种形式
    /AAA/BBB/CCC:表示层级结构,表示AAA下面BBB下面的所有CCC
*第二种形式
    //BBB:表示和这个名称相同,只要名称是 BBB 都可以获取到
 *第三种形式
   /AAA/BBB/*:选择目录下的所有元素
   /*/*/*/BBB:选择有三个祖先元素的BBB元素
   //*:选择所有的元素
 *第四种形式
    //AAA[1]/BBB:选择第一个AAA下的BBB元素
    //AAA/BBB[1]:选择所有AAA的第一个BBB元素
    //AAA/BBB[last()]:选择所有AAA的最后一个BBB元素
 *第五种形式
    //@id:选择所有的id属性
    //BBB[@id]:选择具有id属性的BBB元素
*第六种形式
    //BBB[@id='b1'] :选择含有属性id并且其值为b1的BBB元素
posted @ 2020-04-24 22:43  林jj  阅读(133)  评论(0编辑  收藏  举报