2022年使用DOMj解析xml文件整理 .pdf

上传人:Che****ry 文档编号:30533568 上传时间:2022-08-06 格式:PDF 页数:5 大小:53.91KB
返回 下载 相关 举报
2022年使用DOMj解析xml文件整理 .pdf_第1页
第1页 / 共5页
2022年使用DOMj解析xml文件整理 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年使用DOMj解析xml文件整理 .pdf》由会员分享,可在线阅读,更多相关《2022年使用DOMj解析xml文件整理 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Xml文件: studentname 78 78 98 studentname 77 68 88 JAVA文件:import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHe

2、lper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /*DOM4j 对xml 文件的操作*操作 DOM4j 的时候注意要导入3个jar包,否则会报异常*dom4j - 1.6.1.jar*jaxen- 1.1 - beta - 6.jar*saxpath.jar*/publicclass ReaderDom4j 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -

3、- - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - /*创建一个 xml 文件*/publicstaticvoid createxml() /使用 DocumentHelper 类创建一个文档实例。DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。Document document = DocumentHelper.createDocument(); /使用 addElement() 方法创建根元素 studentElement booksElement = document.

4、addElement(student); booksElement.addComment(first xml); /在 student 元素中使用 addElement() 方法增加 call 元素。 Element book1Elment = booksElement.addElement(call); /在call元素里增加 show 属性, show 属性的值是 yesbook1Elment.addAttribute(show, yes); /在 call 元素中使用 addElement() 方法增加 name 元素。Element book2Element = book1Elment

5、.addElement(name); /设置 name 标签的内容book2Element.setText(zhangsan); Element book3Element = book1Elment.addElement(English); book3Element.setText(78); Element book4Element = book1Elment.addElement(Chinese); book4Element.setText(78); Element book5Element = book1Elment.addElement(Japan); book5Element.setT

6、ext(98); book1Elment = booksElement.addElement(call); book1Elment.addAttribute(show, yes); book2Element = book1Elment.addElement(name); book2Element.setText(wangwu); book3Element = book1Elment.addElement(English); book3Element.setText(77); book4Element = book1Elment.addElement(Chinese); book4Element

7、.setText(68); book5Element = book1Elment.addElement(Japan); book5Element.setText(88); try /格式化输出 xml 文件,兼容 ie 的格式化输出OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(UTF-8); /把 xml 文件从内存中写入文件XMLWriter writer = new XMLWriter(new FileWriter(myxml.xml), format); writer.write(do

8、cument); writer.close(); catch (IOException e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - e.printStackTrace(); SuppressWarnings( unchecked) /*对xml 文件的修改操作*修改 xml 文件以后要重新把xml 文件从内存中写入文件,否则修改的只是内存中的 xml ,实际文件不会改变*DOM4j 操作 xml 文件是一次性把所有数据

9、读入内存中,所以xml 文件过大不能用dom4j 去解析*/publicstaticvoid modifyxml() /使用 SAXReader去解析 xml 文件SAXReader reader=new SAXReader(); Document document; try File file = new File(C:workspaceTestmyxml.xml); /获取 document对象 document=reader.read(file); /通过 selectNodes寻找节点或者属性 List list=document.selectNodes(/student/call/s

10、how); Iterator it=list.iterator(); while(it.hasNext() /Attribute属性的操作方法 Attribute attribute=(Attribute)it.next(); if(attribute.getValue().equals(yes) attribute.setValue(no); list =document.selectNodes(/student/call/name); it=list.iterator(); while(it.hasNext() /标签内容的操作方法Element nameElment=(Element)i

11、t.next(); nameElment.setText(studentname); /删除某个节点是要用两层循环,因为删除当前节点必须用父节点去删除。list=document.selectNodes(/student/call); it=list.iterator(); while(it.hasNext() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - /获取父节点Element scoreElement=(Element

12、)it.next(); System.out .println(scoreElement); SuppressWarnings( unused) /获取该父节点下面的需要查找的子节点Iterator itera=scoreElement.elementIterator(English); while(itera.hasNext() Element scoreEnglish=(Element)itera.next(); if(scoreEnglish.getText().equals(77) / / 利用父节点去删除 scoreElement.remove(scoreEnglish); Supp

13、ressWarnings( unused) /* Iterator itera=document.getRootElement().elementIterator(call); while(itera.hasNext()Element ele=(Element)itera.next();System.out.println(ele);*/OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(UTF-8); XMLWriter writer; try writer = new XMLWriter(ne

14、w FileWriter(myxml.xml), format); writer.write(document); writer.close(); catch (IOException e) e.printStackTrace(); catch (DocumentException e) e.printStackTrace(); publicstaticvoid main(String args) ReaderDom4j.createxml(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

15、- - 第 4 页,共 5 页 - - - - - - - - - ReaderDom4j.modifyxml(); 总结如下:创建 xml 文件获取 document对象Document document =DocumentHelper.createDocument();创建节点父节点 .addElement(“ 子节点 ” ); 创建节点的内容节点 .setText(“ 内容 ” ); 创建节点的属性及内容节点 .addAttribute(“ 属性名 ” , ” 属性值 ” ); 修改 xml 的操作获取 SAXReader的对象SAXReader reader=new SAXReader

16、(); 获取 document对象Document document=reader.read(new File(“ 路径名 ” ) 获取根节点document.getRootElement(); 获取根节点一下的某个节点的迭代Iterator it= document.getRootElement().elementIterator(); 获取元素迭代器Iterator it=document.selectNodes(“ /student/call/name/show” ); (获取根节点一下call节点一下Name 节点的属性show 的值)修改属性的值attribute.setValue(); 修改标签的内容element.setText(); 删除便签父节点 .remove(子节点 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁