博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
别人的xmljiexi
阅读量:3524 次
发布时间:2019-05-20

本文共 3829 字,大约阅读时间需要 12 分钟。

package xml;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.Element;  import org.dom4j.io.OutputFormat;  import org.dom4j.io.SAXReader;  import org.dom4j.io.XMLWriter;  public class Demo01 {public void test() throws Exception {          // 创建saxReader对象          SAXReader reader = new SAXReader();          // 通过read方法读取一个文件 转换成Document对象          Document document = reader.read(new File("src/dom4j/sida.xml"));          //获取根节点元素对象          Element node = document.getRootElement();          //遍历所有的元素节点          listNodes(node);          // 获取四大名著元素节点中,子节点名称为红楼梦元素节点。          Element element = node.element("红楼梦");          //获取element的id属性节点对象          Attribute attr = element.attribute("id");          //删除属性          element.remove(attr);          //添加新的属性          element.addAttribute("name", "作者");          // 在红楼梦元素节点中添加朝代元素的节点          Element newElement = element.addElement("朝代");          newElement.setText("清朝");          //获取element中的作者元素节点对象          Element author = element.element("作者");          //删除元素节点          boolean flag = element.remove(author);          //返回true代码删除成功,否则失败          System.out.println(flag);          //添加CDATA区域          element.addCDATA("红楼梦,是一部爱情小说.");          // 写入到一个新的文件中          writer(document);      }      /**     * 把document对象写入新的文件     *       * @param document     * @throws Exception     */      public void writer(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//a.xml")), "UTF-8"), format);          // 写入          writer.write(document);          // 立即写入          writer.flush();          // 关闭操作          writer.close();      }      /**     * 遍历当前节点元素下面的所有(元素的)子节点     *       * @param node     */      public void listNodes(Element node) {          System.out.println("当前节点的名称::" + node.getName());          // 获取当前节点的所有属性节点          List
list = node.attributes(); // 遍历属性节点 for (Attribute attr : list) { System.out.println(attr.getText() + "-----" + attr.getName() + "---" + attr.getValue()); } if (!(node.getTextTrim().equals(""))) { System.out.println("文本内容::::" + node.getText()); } // 当前节点下面子节点迭代器 Iterator
it = node.elementIterator(); // 遍历 while (it.hasNext()) { // 获取某个子节点对象 Element e = it.next(); // 对子节点进行遍历 listNodes(e); } } /** * 介绍Element中的element方法和elements方法的使用 * * @param node */ public void elementMethod(Element node) { // 获取node节点中,子节点的元素名称为西游记的元素节点。 Element e = node.element("西游记"); // 获取西游记元素节点中,子节点为作者的元素节点(可以看到只能获取第一个作者元素节点) Element author = e.element("作者"); System.out.println(e.getName() + "----" + author.getText()); // 获取西游记这个元素节点 中,所有子节点名称为作者元素的节点 。 List
authors = e.elements("作者"); for (Element aut : authors) { System.out.println(aut.getText()); } // 获取西游记这个元素节点 所有元素的子节点。 List
elements = e.elements(); for (Element el : elements) { System.out.println(el.getText()); } }}

转载地址:http://elrqj.baihongyu.com/

你可能感兴趣的文章
[POJ 1915] Knight Moves
查看>>
Memcache技术精华
查看>>
Redis详解入门篇
查看>>
php开启redis扩展包与redis安装
查看>>
php使用openssl来实现非对称加密
查看>>
pdo如何防止 sql注入
查看>>
myisam和innodb的区别
查看>>
MySQL建表规范与注意事项(个人精华)
查看>>
JDK8接口的新特性
查看>>
synchronized的局限性与lock的好处
查看>>
redis和memcached有什么区别?
查看>>
Spring中的设计模式
查看>>
如何设计一个秒杀系统 -- 架构原则
查看>>
如何设计一个秒杀系统 -- 动静分离方案
查看>>
JWT 快速了解
查看>>
实习日志一
查看>>
排序算法稳定性
查看>>
图算法总结(判断有环、最短路径)
查看>>
spring中的类
查看>>
python练习编程网址
查看>>