本篇文章为大家展示了利用dom4j如何实现操作xml文件中的demo,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
废话不多说,直接上代码
package com.cn.shop.util;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class XmlUtils {public static Document getDocument() {// 1.读取xml文件获取document对象SAXReader reader = new SAXReader();Document document = null;try {document = reader.read("D:\\itext\\27663.xml");} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 2.通过解析xml的文本return document;}public static void anaXml() throws Exception {// 读取xml的文本内容来创建document对象SAXReader reader = new SAXReader();try {Document document = reader.read("D:\\itext\\27663.xml");Element root = document.getRootElement();System.out.println(root.getName());getElement(root);} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void getElement(Element root) {// 获取当前节点的所有属性节点List<Attribute> as = root.attributes();for (Attribute a : as) {System.out.println("当前属性节点的名称:" + a.getName());}if (!root.getTextTrim().equals("")) {System.out.println("文本内容::::" + root.getText());}Iterator<Element> el = root.elementIterator();while (el.hasNext()) {// 获取某个子节点对象Element e = el.next();// 对子节点进行遍历getElement(e);}}public static void elementMethod(Element node) {// 获取node节点中,子节点的元素名称为西游记的元素节点。Element e = node.element("info");// 获取西游记元素节点中,子节点为chapter的元素节点(可以看到只能获取第一个作者元素节点)Element author = e.element("classification");System.out.println(e.getName() + "----" + author.getText());// 获取西游记这个元素节点 中,所有子节点名称为classification元素的节点 。List<Element> authors = e.elements("classification");for (Element aut : authors) {System.out.println(aut.getText());}// 获取西游记这个元素节点 所有元素的子节点。List<Element> elements = e.elements();for (Element el : elements) {System.out.println(el.getText());}}public static void writer(Document document) throws Exception {// 紧凑的格式// OutputFormat format = OutputFormat.createCompactFormat();// 排版缩进的格式OutputFormat format = OutputFormat.createPrettyPrint();// 设置编码format.setEncoding("UTF-8");// 创建XMLWriter对象,指定了写出文件及编码格式File file = new File("c://index//大主宰.xml");FileOutputStream fos = new FileOutputStream(file);OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");XMLWriter writer = new XMLWriter(osw);// 写入writer.write(document);// 立即写入writer.flush();// 关闭操作writer.close();}// 以下的代码为字符串与xml互转实例public void test() throws Exception {// 创建saxreader对象SAXReader reader = new SAXReader();// 读取一个文件,把这个文件转换成Document对象Document document = reader.read(new File("src//c.xml"));// 获取根元素Element root = document.getRootElement();// 把文档转换字符串String docXmlText = document.asXML();System.out.println(docXmlText);System.out.println("---------------------------");// csdn元素标签根转换的内容String rootXmlText = root.asXML();System.out.println(rootXmlText);System.out.println("---------------------------");// 获取java元素标签 内的内容Element e = root.element("java");System.out.println(e.asXML());}public void test2() throws Exception {Document document = DocumentHelper.createDocument();// 创建根节点Element root = document.addElement("csdn");Element java = root.addElement("java");java.setText("java班");Element ios = root.addElement("ios");ios.setText("ios班");writer(document);}public void test1() throws Exception {String text = "<csdn><java>Java班</java><net>Net班</net></csdn>";Document document = DocumentHelper.parseText(text);Element e = document.getRootElement();System.out.println(e.getName());writer(document);}public void writer1(Document document) throws Exception {// 紧凑的格式// OutputFormat format = OutputFormat.createCompactFormat();// 排版缩进的格式OutputFormat format = OutputFormat.createPrettyPrint();// 设置编码format.setEncoding("UTF-8");// 创建XMLWriter对象,指定了写出文件及编码格式// XMLWriter writer = new XMLWriter(new FileWriter(new// File("src//a.xml")),format);XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//c.xml")), "UTF-8"),format);// 写入writer.write(document);// 立即写入writer.flush();// 关闭操作writer.close();}public static void main(String[] args) {try {anaXml();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机利用dom4j如何实现操作xml文件中的demo
后端开发2023-05-31
Java中使用DOM4J生成xml文件并解析xml文件的操作
后端开发2024-04-02
C#实现利用Linq操作Xml文件
后端开发2022-12-29
Qt如何利用DOM类实现读取xml文件
后端开发2023-07-02
如何利用python实现windows的批处理及文件夹操作
后端开发2024-04-02
VB中如何实现文件的读写操作
后端开发2024-04-03
Android 开发中如何实现操作文件
后端开发2023-05-31
C语言中如何实现文件操作
后端开发2023-06-29
如何在 ASP 中实现高效的文件操作?
后端开发2023-08-21
关于Java中如何实现文件的读写操作
后端开发2023-05-18
如何用 Java 实现高效的文件读写操作
后端开发2024-02-26
如何在PHP中实现高效的文件读写操作?
后端开发2023-08-27
如何在Go中实现高效的文件读写操作?
后端开发2023-09-05
在Java项目中使用RandomAccessFile类如何实现操作文件
后端开发2023-05-31
如何使用Python文件响应框架实现高效的文件操作?
后端开发2023-07-20
如何实现Python中ini配置文件读写操作
后端开发2023-06-29
如何在Go语言中实现异步文件操作?
后端开发2023-09-24
咦!没有更多了?去看看其它编程学习网 内容吧