【笔记——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 = 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对象,然后该修改的地方就修改,再写回去文件就可以了,这里就不在累述。

转载于:https://www.cnblogs.com/kirno/p/4176633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值