1、前言
虽然现在很多场合都转向了json,但是解析xml还是会在很多场合用上。
2、node和element的区别
1、element:
元素是一个小范围的定义,必须是含有完整信息的结点才是一个元素 例如<div>...</div>。
但是一个结点不一定是一个元素,而一个元素一定是一个结点。
2、node:
node是相对tree这种数据结构而言的。tree就是由node组成。这个部分你可以参考离散数学的树图。
element则是XML里的概念,<xxx>就是元素,是XML中的数据的组成部分之一。
3、dom4j API
DocumentHelper类中有:
(1)Document document = DocumentHelper.createDocument();//创建一个document对象,通常用于新建一个xml文档
(2)Element element = DocumentHelper.createElement();//创建一个element对象,即创建一个标签
(3)Document document = DocumentHelper.parseText(String xml);//将xml字符串转换成以document为根节点的DOM树
SAXReader类中有:
(1)SAXReader reader = new SAXReader();
(2)Document document = reader.read(new File("1.xml"));//读取并解析1.xml文档,并返回document
Document类中有:
(1)String text = document.asXML(Document); //将一颗DOM树转为XML字符串
(2)Element root = document.getRootElement(); //获得根节点
Element中有:
(1)Element newelem = elem.addElement("child"); //加入名为child的子标签,并返回此element
(2)newelem.addAttribute("name","value"); //标签添加一个属性
(3)newelem.addText("xxxx"); //为标签添加一个标签值
(4)newelem.getText(); //获得标签的标签值
(5)String value = newelem.attributeValue("name");//获得标签的属性值
(6)Iterator iter = newelem.attributeIterator() ;//标签的属性迭代器
(7)List childs = newelem.elements(); //获得标签的全部子元素
(8)Element child = newelem.element("name"); //获得标签的子标签中的多个<name>标签中的第一个元素
(9)List childs = newelem.elements("name"); //获得标签的子标签中的全部<name>标签
(10)newelem.remove(elem); //删除elem标签
XMLWriter类中有:
(1)XMLWriter writer = new XMLWriter(OutputStream out,OutputFormat format);
(2)writer.write(document); //输出document
(3)writer.close(); //关闭XMLWriter流
OutputFormat类中有:
(1)OutputFormat format = OutputFormat.createPrettyFormat();//输出时排版整齐
(2)OutputFormat format = OutputFormat.createCompactFormat();//输出时排版紧实
(3)format.setEncoding("UTF-8"); //设置<?xml ?>中的encoding属性,默认为UTF-8
Attribute类中有:
(1)attr.setValue("value"); //设置属性
(2)String value = attr.getValue();
4、表格汇总
Attribute |
定义了 XML 的属性。 |
Branch |
指能够包含子节点的节点。如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为 |
CDATA |
定义了 XML CDATA 区域 |
CharacterData |
是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text. |
Comment |
定义了 XML 注释的行为 |
Document |
定义了XML 文档 |
DocumentType |
定义 XML DOCTYPE 声明 |
Element |
定义XML 元素 |
ElementHandler |
定义了Element 对象的处理器 |
ElementPath |
被 ElementHandler 使用,用于取得当前正在处理的路径层次信息 |
Entity |
定义 XML entity |
Node |
为dom4j中所有的XML节点定义了多态行为 |
NodeFilter |
定义了在dom4j 节点中产生的一个滤镜或谓词的行为(predicate) |
ProcessingInstruction |
定义 XML 处理指令 |
Text |
定义 XML 文本节点 |
Visitor |
用于实现 Visitor模式 |
XPath |
在分析一个字符串后会提供一个 XPath 表达式 |