- 浏览: 251999 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (282)
- 常用-笔记 (9)
- 2012-2013开发整理 (19)
- 2017前-开发整理 (38)
- 2017-开发整理【前端】 (2)
- 数据库 (25)
- 数据库_Oracle (35)
- 数据库_MySql (4)
- 数据库_Sybase (30)
- 数据库_Oracle ERP (4)
- java 应用 (23)
- java_xml解析 (7)
- java_反射 (0)
- Java_多线程 (0)
- java_socket (0)
- 前端_CSS样式 (3)
- 前端_JavaScript (29)
- 前端_jQuery 应用 (11)
- 前端_jQuery EasyUI (2)
- 开源_SSH框架应用 (18)
- 开源_spring (0)
- 开源_springMVC (0)
- 开源_MyBatis (0)
- 架构_01. SOA_webService (8)
- 架构_02. 搜索引擎_Solr (0)
- 架构_03. redis (0)
- 架构_04. mongodb (2)
- 架构_05. 设计模式 (0)
- 架构_06. 缓存机制 (0)
- 架构_07. 身份认证 (0)
- 架构_08. 单点登录 (0)
- 架构_09. JMS消息机制 (0)
- 架构_10. 工作流 (0)
- 架构_11. 日志 (1)
- 架构_12. 数据库-设计 (1)
- 架构_13.分布式架构 (1)
- web_C标签 (4)
- web中间件 (6)
- 综合技术 (4)
- 管理_maven (3)
- 管理_软件项目管理 (17)
- 思考_程序人生 (16)
- 资源_网站 (2)
- 其他 (1)
- Eclipse基本配置 (3)
- 2017-18 (8)
- Linux (1)
- 数字计算 (3)
- 微信开发 (0)
最新评论
-
masuweng:
JavaScript 动态表格增加、删除、行金额计算、合计 -
xxwozixin:
迷茫中在iteye上搜索“程序员的第一个五年规划”结果看到了这 ...
我的中兴五年生活
使用DOM4J来操作的XML文件。
我们需要引入的包:
//文件包
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
//工具包
import java.util.Iterator;
import java.util.List;
//dom4j包
import org.dom4j.Attribute;
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;
/** * doc2String * 将xml文档内容转为String * @return 字符串 * @param document */ public static String doc2String(Document document) { String s = ""; try { //使用输出流来进行转化 ByteArrayOutputStream out = new ByteArrayOutputStream(); //使用GB2312编码 OutputFormat format = new OutputFormat(" ", true, "GB2312"); XMLWriter writer = new XMLWriter(out, format); writer.write(document); s = out.toString("GB2312"); }catch(Exception ex) { ex.printStackTrace(); } return s; }
2、将符合XML格式的String 转化为XML Document
/** * string2Document * 将字符串转为Document * @return * @param s xml格式的字符串 */ public static Document string2Document(String s) { Document doc = null; try { doc = DocumentHelper.parseText(s); }catch(Exception ex) { ex.printStackTrace(); } return doc; }
3、将Document对象保存为一个xml文件到本地
/** * doc2XmlFile * 将Document对象保存为一个xml文件到本地 * @return true:保存成功 flase:失败 * @param filename 保存的文件名 * @param document 需要保存的document对象 */ public static boolean doc2XmlFile(Document document,String filename) { boolean flag = true; try { /* 将document中的内容写入文件中 */ //默认为UTF-8格式,指定为"GB2312" OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GB2312"); XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format); writer.write(document); writer.close(); }catch(Exception ex) { flag = false; ex.printStackTrace(); } return flag; }
4、将xml格式的字符串保存为本地文件,如果字符串格式不符合xml规则,则返回失败
/** * string2XmlFile * 将xml格式的字符串保存为本地文件,如果字符串格式不符合xml规则,则返回失败 * @return true:保存成功 flase:失败 * @param filename 保存的文件名 * @param str 需要保存的字符串 */ public static boolean string2XmlFile(String str,String filename) { boolean flag = true; try { Document doc = DocumentHelper.parseText(str); flag = doc2XmlFile(doc,filename); }catch (Exception ex) { flag = false; ex.printStackTrace(); } return flag; }
5、载入一个xml文档
/** * load * 载入一个xml文档 * @return 成功返回Document对象,失败返回null * @param uri 文件路径 */ public static Document load(String filename) { Document document = null; try { SAXReader saxReader = new SAXReader(); document = saxReader.read(new File(filename)); } catch (Exception ex){ ex.printStackTrace(); } return document; }
6、演示String保存为xml文件
/** * xmlWriteDemoByString * 演示String保存为xml文件 */ public void xmlWriteDemoByString() { String s = ""; /** xml格式标题 "<?xml version='1.0' encoding='GB2312'?>" 可以不用写*/ s = "<config>\r\n" +" <ftp name='DongDian'>\r\n" +" <ftp-host>127.0.0.1</ftp-host>\r\n" +" <ftp-port>21</ftp-port>\r\n" +" <ftp-user>cxl</ftp-user>\r\n" +" <ftp-pwd>longshine</ftp-pwd>\r\n" +" <!-- ftp最多尝试连接次数 -->\r\n" +" <ftp-try>50</ftp-try>\r\n" +" <!-- ftp尝试连接延迟时间 -->\r\n" +" <ftp-delay>10</ftp-delay>\r\n" +" </ftp>\r\n" +"</config>\r\n"; //将文件生成到classes文件夹所在的目录里 string2XmlFile(s,"xmlWriteDemoByString.xml"); //将文件生成到classes文件夹里 string2XmlFile(s,"classes/xmlWriteDemoByString.xml"); }
7、演示手动创建一个Document,并保存为XML文件
/** * 演示手动创建一个Document,并保存为XML文件 */ public void xmlWriteDemoByDocument() { /** 建立document对象 */ Document document = DocumentHelper.createDocument(); /** 建立config根节点 */ Element configElement = document.addElement("config"); /** 建立ftp节点 */ configElement.addComment("东电ftp配置"); Element ftpElement = configElement.addElement("ftp"); ftpElement.addAttribute("name","DongDian"); /** ftp 属性配置 */ Element hostElement = ftpElement.addElement("ftp-host"); hostElement.setText("127.0.0.1"); (ftpElement.addElement("ftp-port")).setText("21"); (ftpElement.addElement("ftp-user")).setText("cxl"); (ftpElement.addElement("ftp-pwd")).setText("longshine"); ftpElement.addComment("ftp最多尝试连接次数"); (ftpElement.addElement("ftp-try")).setText("50"); ftpElement.addComment("ftp尝试连接延迟时间"); (ftpElement.addElement("ftp-delay")).setText("10"); /** 保存Document */ doc2XmlFile(document,"classes/xmlWriteDemoByDocument.xml"); }
8、演示读取文件的具体某个节点的值
/** * 演示读取文件的具体某个节点的值 */ public static void xmlReadDemo() { Document doc = load("classes/xmlWriteDemoByDocument.xml"); //Element root = doc.getRootElement(); /** 先用xpath查找所有ftp节点 并输出它的name属性值*/ List list = doc.selectNodes("/config/ftp" ); Iterator it = list.iterator(); while(it.hasNext()) { Element ftpElement = (Element)it.next(); System.out.println("ftp_name="+ftpElement.attribute("name").getValue()); } /** 直接用属性path取得name值 */ list = doc.selectNodes("/config/ftp/@name" ); it = list.iterator(); while(it.hasNext()) { Attribute attribute = (Attribute)it.next(); System.out.println("@name="+attribute.getValue()); } /** 直接取得DongDian ftp的 ftp-host 的值 */ list = doc.selectNodes("/config/ftp/ftp-host" ); it = list.iterator(); Element hostElement=(Element)it.next(); System.out.println("DongDian's ftp_host="+hostElement.getText()); }
9、修改或删除某个值或属性
/** ftp节点删除ftp-host节点 */ ftpElement.remove(hostElement); /** ftp节点删除name属性 */ ftpElement.remove(nameAttribute); /** 修改ftp-host的值 */ hostElement.setText("192.168.0.1"); /** 修改ftp节点name属性的值 */ nameAttribute.setValue("ChiFeng");
1、将XML文件的内容转化为String
发表评论
-
JDOM 操作XML(比较全)
2011-08-18 11:56 932可扩展标记语言——eXtensible Markup Lan ... -
使用Dom4j操作XML(比较全)
2011-08-18 11:47 1155Dom4j也可以很方便完成XML文档的创建、元素的 ... -
dom4j读写XML及保存批量数据对象
2011-08-09 17:41 11811. 创建一个People对象 ... -
使用 dom4j 解析 XML(转IBM)
2011-08-09 17:16 912dom4j API 包含一个解析 XML 文档的工 ... -
dom4j创建XML例子
2011-08-09 16:15 846dom4j创建XML(转载) package co ... -
xml笔记
2011-08-09 15:48 834XML笔记 一.Document对象相关 ...
相关推荐
为了方便网友编程,将资源...org.dom4j.xpath Provides the core tools needed to use the XPath library org.dom4j.xpp Provides implementation classes to cleanly integrate dom4j with the XML Pull Parser XPP
在MATLAB中操作XML文件时,需要首先使用xmlread函数将XML文件读取到DOM节点,然后使用DOM节点提供的方法来操作XML文档,最后使用xmlwrite函数将DOM节点写入到XML文件中。 MATLAB提供了方便的函数来操作XML文件,...
本示例将探讨如何使用Delphi来操作XML文件,为初学者提供实践指导。 首先,了解XML的基本结构是必要的。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成,每个XML文件都有一个根元素...
标题中的"XmlTools_2.4.9.2 x64_Unicode.zip"指的是XML Tools插件的一个特定版本,版本号为2.4.9.2,适用于64位操作系统,并且是Unicode编码的。XML Tools是一款强大的XML编辑和处理工具,它专为提升在Notepad++中的...
4. DOM(Document Object Model):是一种将XML文档映射为树形结构的API,允许程序员通过节点操作来访问和修改XML内容。例如,通过DOM可以获取元素、属性和文本,也可以添加、删除或修改这些元素。 5. SAX(Simple ...
创建一个Java类,如`Xmlreadtest`,并使用DOM4J的SAXReader类来读取XML文件并获取其内容: ```java package xmlreadtest; import java.io.File; import org.dom4j.DocumentException; import org.dom4j....
1. 使用XML解析库(如Java的JAXB, DOM4J, Python的lxml等)解析XML文件,生成DOM树。 2. 遍历DOM树,为每个元素创建树形控件的节点,属性值可以作为子节点或单独的文本框。 3. 将树形控件添加到用户界面,允许用户...
例如,"XML指南.chm"可能是一个包含详细XML教程和参考信息的离线帮助文件,用户可以通过它学习XML语法、DOM(Document Object Model)和SAX(Simple API for XML)解析方法等。 安装必看.txt和飞翔下载说明.txt可能...
总的来说,`xml_io_tools_2010_11_05`是MATLAB用户处理XML文件的一个强大辅助工具,它的存在极大地扩展了MATLAB在XML数据操作方面的功能,使得开发者能够更加专注于核心的计算任务,而不必担心数据的输入和输出问题...
在"tools"这个压缩包子文件中,可能包含了一系列与Xerces-J相关的实用工具,例如XML Schema编译器、XML验证器、DOM打印工具等,这些工具可以帮助开发者测试XML文档、验证XML Schema或者进行其他XML相关的任务。...
5. **Android XML布局**: 在Android应用开发中,UI界面通常是用XML文件来定义的。开发者可以通过XML文件来描述控件的布局、属性和事件处理。 6. **ListView**: ListView是Android中用于显示大量数据的视图组件,它...
总的来说,Xerces-J-tools.2.5.0.zip是Java开发者处理XML文档的重要工具集,尤其在处理大型XML数据或集成到如Hibernate这样的框架时,其SAX解析器的优势尤为明显。通过这个压缩包,开发者可以更高效地进行XML解析,...
总结来说,Xerces-J-tools.1.2.2.zip包含的Xerces-J是一个强大且灵活的XML解析库,尤其适用于Java环境。通过其SAX解析器,开发者可以高效地处理大型XML文件,同时,Xerces-J提供的多种功能如验证、命名空间支持等,...
1. Java中的解析:使用JAXB(Java Architecture for XML Binding)进行对象与XML之间的映射,或者使用DOM、SAX API进行解析。 2. Python中的解析:利用ElementTree库,既支持DOM方式也支持SAX方式。 3. JavaScript中...
总结来说,Xerces-J-tools.1.3.0.zip是一个包含早期Xerces-J版本的压缩包,其核心是SAX解析器,适用于需要高效处理XML的Java项目。无论是在大型XML数据处理、XML Schema验证,还是与其他Java框架如Hibernate的集成,...
Xerces-J-tools.2.4.0.zip是一个包含Xerces库早期版本的压缩包,其中的工具对于理解和操作XML文档至关重要。Xerces是一个开源的XML解析器,由Apache软件基金会开发,它支持Java(Xerces-J)和C++(Xerces-C++)等...
2. **DOM(Document Object Model)解析器**:DOM是一种将XML文档表示为树形结构的API,允许开发者通过节点操作来访问和修改XML文档。Xerces-J也提供了对DOM Level 2和Level 3的支持。 3. **XML Schema解析器**:...
使用Unmarshaller可以将XML数据解析为Java对象,而使用工具如JAXB或XML Schema Tools则可以生成XSD文件。 在提供的压缩包文件`xml_test`中,可能包含了用于演示如何生成XML和XSD的Java代码和样例文件。通过阅读和...
《Xerces-J-tools.1.2.1.zip——深入理解SAX XML解析器》 在信息化时代,XML(eXtensible Markup Language)作为数据交换和存储的标准格式,广泛应用于各种软件系统中。XML文档的解析是处理XML数据的关键步骤,其中...
除了SAX解析器,Xerces-J还支持DOM解析器,它将整个XML文档加载到内存中形成一个树形结构,方便遍历和操作。然而,对于大型XML文件,DOM解析器可能会消耗大量内存,因此在资源有限的环境中通常首选SAX。 此外,...