DOM4J生成、解析XML实例
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * * dom4j生成与解析XML文档 * */ public classDom4jDemo { /** * 利用dom4j进行xml文档的写入操作 */ public void createXml(File file) { // XML 声明 <?xmlversion="1.0" encoding="UTF-8"?> 自动添加到 XML文档中 // 使用DocumentHelper类创建文档实例(生成 XML文档节点的 dom4jAPI工厂类) Document document =DocumentHelper.createDocument(); // 使用addElement()方法创建根元素employees(用于向 XML 文档中增加元素) Element root =document.addElement("employees"); // 在根元素中使用 addComment()方法添加注释"AnXML Note" root.addComment("An XMLNote"); // 在根元素中使用addProcessingInstruction()方法增加一个处理指令 root.addProcessingInstruction("target","text"); // 在根元素中使用 addElement()方法增加employee元素。 Element empElem =root.addElement("employee"); // 使用 addAttribute()方法向employee元素添加id和name属性 empElem.addAttribute("id","0001"); empElem.addAttribute("name","wanglp"); // 向employee元素中添加sex元素 Element sexElem =empElem.addElement("sex"); // 使用setText()方法设置sex元素的文本 sexElem.setText("m"); // 在employee元素中增加age元素 并设置该元素的文本。 Element ageElem =empElem.addElement("age"); ageElem.setText("25"); // 在根元素中使用 addElement()方法增加employee元素。 Element emp2Elem =root.addElement("employee"); // 使用 addAttribute()方法向employee元素添加id和name属性 emp2Elem.addAttribute("id","0002"); emp2Elem.addAttribute("name","fox"); // 向employee元素中添加sex元素 Element sex2Elem =emp2Elem.addElement("sex"); // 使用setText()方法设置sex元素的文本 sex2Elem.setText("f"); // 在employee元素中增加age元素 并设置该元素的文本。 Element age2Elem =emp2Elem.addElement("age"); age2Elem.setText("24"); // 可以使用 addDocType()方法添加文档类型说明。 //document.addDocType("employees", null,"file://E:/Dtds/dom4j.dtd"); // 这样就向 XML 文档中增加文档类型说明: // <!DOCTYPE employees SYSTEM"file://E:/Dtds/dom4j.dtd"> // 如果文档要使用文档类型定义(DTD)文档验证则必须有Doctype。 try { XMLWriter output = newXMLWriter(new FileWriter(file)); output.write(document); output.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } /** * 利用dom4j进行xml文档的读取操作 */ public void parserXml(File file) { Document document = null; // 使用 SAXReader 解析 XML 文档catalog.xml: SAXReader saxReader = new SAXReader(); try { document = saxReader.read(file); } catch (DocumentException e) { e.printStackTrace(); } // 将字符串转为XML // document = DocumentHelper.parseText(fileString); // 获取根节点 Element root =document.getRootElement(); // 打印节点名称 System.out.println("<" +root.getName() + ">"); // 获取根节点下的子节点遍历 Iterator<?> iter =root.elementIterator("employee"); // 遍历employee节点 while (iter.hasNext()) { // 获取当前子节点 Element empEle = (Element)iter.next(); System.out.println("<"+ empEle.getName() + ">"); // 获取当前子节点的属性遍历 Iterator<?> attrList = empEle.attributeIterator(); while (attrList.hasNext()) { Attribute attr = (Attribute)attrList.next(); System.out.println(attr.getName() + "=" + attr.getValue()); } // 遍历employee节点下所有子节点 Iterator<?> eleIte =empEle.elementIterator(); while (eleIte.hasNext()) { Element ele = (Element)eleIte.next(); System.out.println("<" + ele.getName() + ">" +ele.getTextTrim()); } // 获取employee节点下的子节点sex值 // String sex =empEle.elementTextTrim("sex"); //System.out.println("sex:" + sex); } System.out.println("</" +root.getName() + ">"); }public static void main(String[] args) { Dom4jDemo dom4j = new Dom4jDemo(); File file = newFile("e:/dom4j.xml"); // dom4j.createXml(file); dom4j.parserXml(file); } }
DOM4J生成、解析XML实例的更多相关文章
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- Python 解析XML实例(xml.sax)
已知movies.xml <collection shelf="New Arrivals"> <movie title="Enemy Behind&qu ...
- java dom4j解析xml实例(2)
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- java dom4j解析xml实例
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- JDOM生成、解析XML实例
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- java生成解析xml的另外两种方法Xstream
Xstream生成和解析xm和JAXB生成和解析xml的方法. 一,Xstream Xstream非jdk自带的,需要到入Xstream-1.4.3.jar和xpp3_min-1.1.4.jar 1. ...
- DOM4J方式解析XML文件
dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory dom4j是一个简单的开源库,用于处理XML. X ...
- 【Android】使用Pull生成/解析XML文件
一.生成XML文件,即是将对象集合转为XML文件存储. 对象集合 –> XML(序列化) Android中使用android.util.Xml类对其进行了描述,提供相应的API. 步骤大致如下: ...
- dom4j递归解析XML字符串所有子节点
/** * dom4j递归解析所有子节点 * * @param childElements * @param mapEle * @return */ public Map<String, Obj ...
随机推荐
- 洛谷P2319 [HNOI2006]超级英雄
一开始是用二分图匹配(网络流)+二分做的,后来发现直接用匈牙利更简单 #include<cstdio> #include<cstdlib> #include<algori ...
- 计蒜客NOIP2017提高组模拟赛(三)day2-数三角形
传送门 这题有点坑啊 设A为两边颜色不同的角,B为两边颜色相同的角 那么考虑三种三角形:异色,同色,其他 对于任何一个异色三角形,一定会有三个颜色不同的角, 对于任何一个同色三角形,一定会有零个颜色不 ...
- hdu 5438(拓扑+bfs)
题意:建图,删掉所有连接点小于2的点,直到不能删为止,问最后剩余的联通块中,点的数量是奇数的联通块中的点的权值和. 思路:拓扑删点,bfs计算 #include <iostream> #i ...
- Android毕业设计-微圈
勤拂拭软件出品,必属精品 : 勤拂拭软件 去年做了一个类似于我的朋友圈的项目,主要功能就是用户可以实时发表自己的动态,好友可以评论点赞什么的,可以建群,聊天啊,拉黑啊,反正是一个不错的社交软件,包含服 ...
- Linux学习之CentOS(二十)------vi/vim 按键说明
vi/vim 按键说明 除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用. 第一部份:一般模式可用的光标移动.复制粘贴.搜索替换等 移动光标的方法 h 或 向左 ...
- jquery easyui datagrid设置可编辑行的某个列不可编辑
function onClickRowd(index1, field1) { if (editIndexd != index1) { if (endEditing()) { $('#dg').data ...
- combobox数据绑定
jquery easyui datagrid 可编辑行 combobox数据绑定问题 将带有参数的url地址赋值给变量,然后将变量赋值给url <script type="text/j ...
- Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
下载 http://tomcat.heanet.ie/native/1.1.12/binaries/win32/tcnative-1.dll将这个文件复制到C:\WINDOWS\system32\,. ...
- 使用foreach需要判空。
今天写代码的时候,需要遍历一个作为参数传递进来的容器, 当时顺手就加上了判空条件: if(null==list)return; 后来就像,不知道遍历(foreach)有没有帮我做这个工作: 下面看实验 ...
- IE10以下兼容H5中的placeholder 以及改变它默认颜色
placeholder是H5<input>的属性之一,可惜在IE10以下不支持,万恶的IE!不过正因为有IE,才多了很多捣鼓,添了乐趣.不支持就不支持呗,自己动手丰衣足食,我们可以用js模 ...