首页 > 代码库 > 【笔记——Java】Dom4j操作笔记

【笔记——Java】Dom4j操作笔记

dom4j使用来操作xml的一个很有名的扩展

网址:http://www.dom4j.org/dom4j-1.6.1/

下载后,把里面的 dom4j-1.6.1.jar 导入项目扩展

一:读取

dom4J使用 SAXReader 来进行读取

1  SAXReader reader = new SAXReader();

该对象 reader 有一个方法 reader() 方法

 

技术分享

 

根据xml文件的位置选择不同的重构方法。

读取后会返回一个 org.dom4j.Document 对象 

1 org.dom4j.Document cfg = reader.read(fileCfg);

1.获取节点:

cfg对象中先通过 getRootElement() 来获取xml的根节点。

然后通过 element(String elementName) 方法来获取各个节点,参数名是该节点的名字

例如:

1 Element win = root.element("window");

可以获取“window”这个节点,此时的win代表着该节点

2.获取节点的属性值:

如果需要获取该节点的属性,则通过 attributeValue(String attributeName) 来获取

例如:

1 String attributeValue = http://www.mamicode.com/win.attributeValue("width");

就可以获取属性值。

3.获取节点的文本

如果需要获取文本,通过节点对象的 getText() 方法获取

1 String text = win.getText();

以上就是读取内容。

二、创建xml文件:

与读取类似,其实就是创建一个 org.dom4j.Document 对象,对该对象进行编写,然后写入文档。

1.创建 org.dom4j.Document 对象

1 //获取工厂2 DocumentFactory newCfg = DocumentFactory.getInstance();3 //创建Document对象4 Document doc = newCfg.createDocument();

接下来的操作就很简单了

1.添加节点:

1 Element window = doc.addElement("window");

2.添加属性

1 window.addAttribute("size", "1270");

3.添加文本 addText(String text) 或者 addCDATA(String text)

/**这个是添加纯文本,即添加结果为:* <window>这是窗口</window>*/window.addText("这是窗口");/**这个则会文本中添加点东西,即添加结果为:* <window>![CDATA[这是窗口]]</window>*/window.addCDATA("这是窗口");

 

注意:添加属性也好,添加文本也好,都是针对某个节点而言。

4.写入xml文件,把创建好的xml写入文件保存起来。

假设有一个xml文件路径为data/test.xml;

首先创建输出对象:

1 XMLWriter writer = new XMLWriter(new FileOutputStream(new File("data/test.xml")));

该类重构了许多构造函数,方便写入到各种地方

技术分享

然后调用该对象的 write(Document doc) 方法就能把创建好的xml对象写入文件即可。

6.对输出文本进行格式化,方便查看

//设置文件编码  OutputFormat xmlFormat = new OutputFormat();  xmlFormat.setEncoding("UTF-8"); // 设置换行 xmlFormat.setNewlines(true); // 生成缩进 xmlFormat.setIndent(true); // 使用4个空格进行缩进, 可以兼容文本编辑器 xmlFormat.setIndent("    "); 

在创建 XMLWriter 对象的时候,作为参数放到构造方法里就行了

1 XMLWriter writer = new XMLWriter(new FileOutputStream(new File("data/test.xml")),xmlFormat);

 

三、修改xml:

修改就更简单了,先把xml文件读取为Document对象,然后该修改的地方就修改,再写回去文件就可以了,这里就不在累述。

【笔记——Java】Dom4j操作笔记