dom4j学习笔记(二)

1、读取xml文件
使用dom4j读取xml文件有2种方式:
public void parseWithSAX(File file)
    throws MalformedURLException, DocumentException {
        SAXReader xmlReader = new SAXReader();
        this.doc = xmlReader.read(file);
        return;
    }
   
    public void parseWithSAX(URL url)
    throws MalformedURLException, DocumentException {
        SAXReader xmlReader = new SAXReader();
        this.doc = xmlReader.read(url);
        return;
    }
(2)、读取根节点
      对Document对象调用getRootElement()方法可以返回代表根节点的Element对象。拥有了一个Element对象后,可以对该对象调用elementIterator()方法获得它的子节点的Element对象们的一个iterator。使用(Element)iterator.next()方法遍历一个iterator并把每个取出的元素转化为Element类型。
(3)、Element类提供的方法
Method Comment
getQName() 元素的QName对象
getNamespace() 元素所属的Namespace对象
getNamespacePrefix() 元素所属的Namespace对象的prefix
getNamespaceURI() 元素所属的Namespace对象的URI
getName() 元素的local name
getQualifiedName() 元素的qualified name
getText() 元素所含有的text内容,如果内容为空则返回一个空字符串而不是null
getTextTrim() 元素所含有的text内容,其中连续的空格被转化为单个空格,该方法不会返回null
attributeIterator() 元素属性的iterator,其中每个元素都是Attribute对象
attributeValue() 元素的某个指定属性所含的值
elementIterator() 元素的子元素的iterator,其中每个元素都是Element对象
element() 元素的某个指定(qualified name或者local name)的子元素
elementText() 元素的某个指定(qualified name或者local name)的子元素中的text信息
getParent 元素的父元素
getPath() 元素的XPath表达式,其中父元素的qualified name和子元素的qualified name之间使用"/"分隔
isTextOnly() 是否该元素只含有text或是空元素
isRootElement() 是否该元素是XML树的根节点

(4)、写xml文件
Dom4j通过XMLWriter将由Document对象表示的XML树写入一个文件,并使用OutputFormat格式对象指定写入的风格和编码方法。调用OutputFormat.createPrettyPrint()方法可以获得一个默认的pretty print风格的格式对象。对OutputFormat对象调用setEncoding()方法可以指定XML文件的编码方法。
public void writeTo(OutputStream out, String encoding)
throws UnsupportedEncodingException, IOException {
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("gb2312");
    XMLWriter writer = new XMLWriter(System.out,format);
    writer.write(doc);
    writer.flush();
    return;
}

你可能感兴趣的:(dom4j)