




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Dom4j解析xml文档版本采用: junit junit 4.10 test 解析文档: 1.读取XML文件,获得document对象 SAXReader reader = new SAXReader();_ Document document = reader.read(new File(csdn.xml); 2、读取文本变量xml数据 String text = + + 11 + 12 + 13 + 14 + + ; try Document document = (Document) DocumentHelper.parseText(text);Element root = document.getRootElement(); /获取根节点Element ul = root.element(ul); /获取下一级指定节点Attribute attr = ul.attribute(id); /获取当前节点的属性Iterator li = ul.elementIterator();/获取下一级所有的节点迭代器while(li.hasNext()Element next = (Element) li.next(); System.out.println(next.getText();System.out.println(ul.getText(); catch (DocumentException e) / TODO Auto-generated catch blocke.printStackTrace();网上资料介绍: 在项目开发的过程中可以参考docs文件夹的(帮助文档),找到index.html打开,点击Quick start可以通过帮助文档进行学习 dom4j进行xml的解析. 下面我对我认为api中重要的方法进行翻译说明如下: 一、DOM4j中,获得Document对象的方式有三种:java view plain copy 1.读取XML文件,获得document对象 SAXReader reader = new SAXReader(); Document document = reader.read(new File(csdn.xml); 2.解析XML形式的文本,得到document对象. String text = ; Document document = DocumentHelper.parseText(text); 3.主动创建document对象. Document document = DocumentHelper.createDocument(); /创建根节点 Element root = document.addElement(csdn); 二、节点对象操作的方法java view plain copy 1.获取文档的根节点. Element root = document.getRootElement(); 2.取得某个节点的子节点. Element element=node.element(“四大名著); 3.取得节点的文字 String text=node.getText(); 4.取得某节点下所有名为“csdn”的子节点,并进行遍历. List nodes = rootElm.elements(csdn); for (Iterator it = nodes.iterator(); it.hasNext();) Element elm = (Element) it.next(); / do something 5.对某节点下的所有子节点进行遍历. for(Iterator it=root.elementIterator();it.hasNext();) Element element = (Element) it.next(); / do something 6.在某节点下添加子节点 Element elm = newElm.addElement(朝代); 7.设置节点文字. elm.setText(明朝); 8.删除某节点./childElement是待删除的节点,parentElement是其父节点 parentElement.remove(childElment); 9.添加一个CDATA节点.Element contentElm = infoElm.addElement(content);contentElm.addCDATA(“cdata区域”); 三、节点对象的属性方法操作java view plain copy 1.取得某节点下的某属性 Element root=document.getRootElement(); /属性名name Attribute attribute=root.attribute(id); 2.取得属性的文字 String text=attribute.getText(); 3.删除某属性 Attribute attribute=root.attribute(size); root.remove(attribute); 4.遍历某节点的所有属性 Element root=document.getRootElement(); for(Iterator it=root.attributeIterator();it.hasNext();) Attribute attribute = (Attribute) it.next(); String text=attribute.getText(); System.out.println(text); 5.设置某节点的属性和文字. newMemberElm.addAttribute(name, sitinspring); 6.设置属性的文字 Attribute attribute=root.attribute(name); attribute.setText(csdn); 四、将文档写入XML文件java view plain copy 1.文档中全为英文,不设置编码,直接写入的形式. XMLWriter writer = new XMLWriter(new FileWriter(ot.xml); writer.write(document); writer.close(); 2.文档中含有中文,设置编码格式写入的形式. OutputFormat format = OutputFormat.createPrettyPrint();/ 创建文件输出的时候,自动缩进的格式 format.setEncoding(UTF-8);/设置编码 XMLWriter writer = new XMLWriter(newFileWriter(output.xml),format); writer.write(document); writer.close(); 五、字符串与XML的转换java view plain copy 1.将字符串转化为XML String text = Java班; Document document = DocumentHelper.parseText(text); 2.将文档或节点的XML转化为字符串. SAXReader reader = new SAXReader(); Document document = reader.read(new File(csdn.xml); Element root=document.getRootElement(); String docXmlText=document.asXML(); String rootXmlText=root.asXML(); Element memberElm=root.element(csdn); String memberXmlText=memberElm.asXML(); 六、案例(解析sida.xml文件并对其进行curd的操作)1.sida.xml描述四大名著的操作,文件内容如下html view plain copy 吴承恩1 吴承恩2 明朝 曹雪芹 2.解析类测试操作java view plain copy package dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; 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; import org.junit.Test; public class Demo01 Test 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(); 自己适当注释部分代码观察运行效果,反复练习,希望你对dom4j有进一步的了解.七、字符串与XML互转换案例java view plain copy package dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.junit.Test; public class Demo02 Test 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(); /* * 创建一个document对象 往document对象中添加节点元素 转存为xml文件 * * throws Exception */ 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); /*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校长职级考试笔试试题(及答案)
- 中职技能大赛试题及答案
- 竞聘安全员面试题及答案
- 2025年北京市农药购买合同范本
- 2025年现行煤炭进口合同条款及贸易惯例
- 2025公司股权转让合同模板
- 2025年CIA考试复习指南审计流程与程序
- 2025年中国大唐老挝公司招聘考试模拟题
- 大二护理实操考试题库及答案
- 导航仪考试题及答案
- 2025年云南省初中学业水平考试物理及答案
- 《中华人民共和国慈善法》培训解读课件
- 2025前期咨询服务合同协议书模板
- 公共空间设计课程标准
- CJ/T 249-2007城镇污水处理厂污泥处置混合填埋泥质
- T/CACEM 22.3-2022校车运营服务管理第3部分:驾驶员与随车照管员管理规范
- 2025年版简易房屋租赁合同模板
- 儿童商业插画课件图片
- 智能医疗中的知识图谱与多模态数据融合研究-洞察阐释
- 厨师岗位安全协议书
- 公路建设副总岗位职责与要求
评论
0/150
提交评论