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