- 浏览: 541988 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
landerson:
明显就有要求的嘛
ANDROID轻量级JSON序列化和反序列化[转] -
jimode2013:
很不错,就是需要这个方法
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转] -
w11h22j33:
...
[转]NSMutableArray中的自动释放对象让我郁闷了一整天 -
w11h22j33:
UILabel* label = [[UILabel a ...
Iphone开发 -
w11h22j33:
http://mobile.51cto.com/iphone- ...
获得通讯录中联系人的所有属性[转]
java中利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。 前两天,在java项目中写了一些关于对XML文档的操作,利用dom4j对XML文档的创建、解析、查找、修改、保存,校验等操作。以下代码供有需要的朋友参考。 import java.io.FileNotFoundException; import java.io.IOException; import org.dom4j.Document; import org.dom4j.io.OutputFormat; public static final String SAVE_XMLFILE_PATH = "saveXML.xml"; public TestXML() { } return doc; /** public void listDocument(Document doc) throws IOException{ // if (list.element("name").getName().equals("name")) { System.out.println("name:"+list.element("name").getText()); // if (list.element("name").getName().equals("name")) { list.element("name").setText("1123"); } /** }
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.xml.sax.SAXException;
/***
* JDK版本:jdk5.0
* 利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。
* @author Jack Chen
* 日期:2007-05-17
*/
public class TestXML {
/**
* 创建一个XML文档
* @return doc 返回该文档
*/
public Document createXMLDocument(){
Document doc = null;
doc = DocumentHelper.createDocument();
doc.addComment("edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by ()");
// doc.addDocType("class","//By Jack Chen","saveXML.xsd");
Element root = doc.addElement("class");
Element company = root.addElement("company");
Element person = company.addElement("person");
person.addAttribute("id","11");
person.addElement("name").setText("Jack Chen");
person.addElement("sex").setText("男");
person.addElement("date").setText("2001-04-01");
person.addElement("email").setText("chen@163.com");
person.addElement("QQ").setText("2366001");
}
/**
* 解析XML文档
* @param xmlFile
* @return XML文档
* @throws DocumentException
* @throws FileNotFoundException
*/
public Document parse(String xmlFile) throws DocumentException, FileNotFoundException{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(xmlFile));
return doc;
}
/***
* 将XML文档输出到控制台
* @param doc
* @throws IOException
*/
public void printDocument(Document doc) throws IOException{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new OutputStreamWriter(System.out),format);
writer.write(doc);
writer.close();
}
* 保存XML文档
* @param doc
* @throws IOException
*/
public void saveDocument(Document doc) throws IOException{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileOutputStream(SAVE_XMLFILE_PATH),format);
writer.write(doc);
writer.close();
}
/**
* 验证XML文档和schemaURL
* @param xmlFile
* @param schemaUrl
* @return XML文档
* @throws SAXException
* @throws DocumentException
*/
public Document validate(String xmlFile,String schemaUrl) throws SAXException, DocumentException{
SAXReader reader = new SAXReader(true);
System.out.println("validate by: " + schemaUrl);
reader.setFeature("http://apache.org/xml/features/validation/schema", true);
reader.setFeature("http://xml.org/sax/features/validation", true);
reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
schemaUrl);
reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking",
true);
Document doc = reader.read(new File(xmlFile));
return doc;
}
/**
* 查找 xml
* @param doc
* @throws IOException
*/
String xpath = "/class/company/person[@id="11"]";
Element list = (Element) doc.selectSingleNode(xpath);
System.out.println(list.getName());
System.out.println("sex:"+list.element("sex").getText());
System.out.println("date:"+list.element("date").getText());
System.out.println("email:"+list.element("email").getText());
System.out.println("QQ:"+list.element("QQ").getText());
}
/***
* 利用XPATH查找元素,然后修改
* @param doc
* @throws IOException
*/
public void updateDocByXPATH(Document doc) throws IOException{
String xpath = "/class/company/person[@id="11"]";
Element list = (Element) doc.selectSingleNode(xpath);
System.out.println(list.getName());
list.element("sex").setText("男");
list.element("date").setText("1800-01-01");
list.element("email").setText("163@163.com");
list.element("QQ").setText("12345");
// }
saveDocument(doc);
* 从根节点遍历,来修改XML文件,并保存。
* @param doc
* @throws IOException
*/
public void updateDocument(Document doc) throws IOException{
Element root = doc.getRootElement();
// System.out.println(root.asXML());
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element e = (Element) i.next();
System.out.println(e.getName());
System.out.println(e.getPath());
if(e.element("person").element("name").getName().equals("name")){
e.element("person").element("name").setText("ChenJI");
e.element("person").element("QQ").setText("123456");
System.out.println(e.getText().toString());
}
saveDocument(doc);
}
}
发表评论
-
干掉你程序中的僵尸代码【转】
2012-12-22 11:05 977随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个 ... -
一个文本框搞定信用卡相关信息的输入[转]
2012-12-22 11:03 1152http://beforweb.com/node/134 ... -
android 开源 OCR 项目 及手写识别[转]
2012-12-11 18:21 57891)一个为Android平台,将识别由手机的相机拍摄的图 ... -
Android通过共享用户ID来实现多Activity进程共享【转】
2012-12-10 14:33 1118http://mypyg.iteye.com/blog/720 ... -
Android应用程序组件Content Provider的启动过程源代码分析【转】
2012-12-05 18:31 1163通过前面的学习,我们知道在Android系统中,Cont ... -
理解android上的安全性【转】
2012-12-03 18:08 943开发 Android 应用程序时,必须处理很多与安全性相关的方 ... -
Android 安全机制概述 Permission【转】
2012-12-03 18:07 11891 Android 安全机制概述 Android 是一个权限分 ... -
Android学习笔记之一谁动了我的接口附checkPermission流程(Dean)[转]
2012-12-03 18:06 18183前段时间接到一个有趣的需求!我们实现的某某功能的手机对外提供了 ... -
(JAVA) 使用异或进行简单的密码加密(JAVA实现)[转]
2012-11-12 16:44 1228http://blog.sina.com.cn/s/bl ... -
SL4A 之实现原理解析【转】
2012-10-23 23:52 1298关于SL4A的简介和在Android系统的安装及使用,请参 ... -
百度地图API之根据经纬度查询地址信息(Android)[转]
2012-06-16 00:15 19828http://blog.csdn.net/lyq8479/ar ... -
百度地图的手动定位和自动定位[转]
2012-06-15 23:24 3486http://aokunsang.iteye.com/b ... -
如何编程实现开启或关闭GPS?
2012-06-09 22:14 1173来自 手机应用中最酷的可能就是位置服务相关的了, ... -
Android软键盘的隐藏显示研究[转]
2012-05-25 16:30 1475Android是一个针对触摸屏专门设计的操作系统,当点 ... -
15 个变量和方法命名的最佳实践[转]
2012-02-27 11:44 104415 个变量和方法命名的最佳实践 在每个代码范围内使用足够短 ... -
iPhone Android Web开发(概要)
2012-01-19 15:15 1084一、 前端使用技术 JavaScript、 jQuer ... -
移动 电信 联通 APN cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet设置[转]
2011-11-23 14:35 2799APN(Access Point Name),即“接入 ... -
Android Http CMWAP联网获取实例【转】
2011-10-24 13:24 1412上午的时候原本想通过改变切入点的方式来实现cmwap,但是我们 ... -
监听ListView滚动到最底部【转】
2011-09-13 10:27 5906监听ListView的滚动可以用两个东西: ListV ... -
Android蓝牙开发浅谈【转】
2011-09-07 14:20 1620转自:http://www.eoeandroid.co ...
相关推荐
Java提供了多种解析XML的API,包括SAX(Simple API for XML)、DOM(Document Object Model)以及DOM4J。下面我们将详细探讨这些解析方式及其在实际开发中的应用。 1. SAX解析器: SAX是一种基于事件驱动的解析器,...
Dom4j是一个基于Java的开源项目,它实现了DOM、SAX和JDOM等解析器的接口,并提供了一种更方便的方式来处理XML文档。它支持XPath查询,能够方便地创建、修改和查询XML结构。 **读取XML文档:** 1. **添加依赖**:在...
1. **Document对象**:DOM4J中的Document对象代表整个XML文档。它是XML结构的根,包含了所有的元素、属性和文本节点。你可以通过`DocumentBuilder`来构建或解析一个Document对象。 2. **Element对象**:Element是...
总结,DOM4J是Java开发中处理XML文档的强大工具,它的易用性和灵活性使得XML操作变得简单。无论是读取、写入还是搜索XML,DOM4J都能提供高效的方法。在实际项目中,结合源码阅读和使用DOM4J工具,能够更深入地理解和...
Java DOM4J库是用于处理XML文档的一个强大的开源框架,它提供了一种灵活且高效的方式来解析、创建和操作XML内容。DOM4J这个名字来源于“Document Object Model”(DOM)和“Java”的组合,它扩展了DOM接口,同时引入...
DOM4J是一个Java库,它提供了处理XML文档的强大功能,包括创建、修改和查询XML。在这个场景中,我们将深入理解如何使用DOM4J来生成XML文档以及如何解析XML内容。 首先,生成XML文档涉及以下几个主要步骤: 1. **...
2. **集合框架集成**:DOM4J中的XML元素可以像Java集合一样进行迭代、查找、添加和删除,大大简化了编程。 3. **XPath支持**:DOM4J提供了对XPath表达式的强大支持,可以方便地定位XML文档中的任何节点。 4. **轻量...
- 查询能力:DOM4J集成了XPath,可以方便地查找和定位XML文档中的元素。 - 支持命名空间:DOM4J对XML命名空间有很好的支持。 四、示例代码 这里给出一个使用DOM4J创建XML文档的简单示例: ```java import org....
在Java中,DOM4J提供了一种灵活的方式来操作XML文档,包括解析、遍历、修改节点以及序列化回XML字符串。 **DOM4J的基本概念:** 1. **Element(元素)**:XML文档中的每一个标签都是一个Element,它包含属性、文本...
XPath是一种在XML文档中查找信息的语言,与DOM4J结合使用,可以高效地定位到XML文档中的特定节点。接下来,我们将深入探讨这两个关键概念以及如何通过它们实现XML的处理。 1. DOM4J解析XML 当我们处理XML文档时,...
总结来说,DOM4J是Java开发中处理XML文档的强大工具,无论是在解析、查询还是修改XML方面,都提供了高效的解决方案。结合其轻量级的设计和对XPath的支持,DOM4J成为了Java开发者的首选XML库之一。
### DOM4J解析XML知识点详解 ...通过结合使用DOM4J的基本类和XPath表达式,可以轻松地实现对XML文档的查询和修改。无论是对于开发人员还是对于那些需要频繁处理XML数据的应用程序来说,DOM4J都是一个非常有价值的工具。
1. **创建Document对象**:首先,我们需要使用`DocumentFactory`类创建一个`Document`对象,它是DOM4J中表示整个XML文档的顶级节点。 ```java import org.dom4j.Document; import org.dom4j.DocumentFactory; ...
本文将深入探讨DOM(Document Object Model)和DOM4J两种XML解析技术,帮助你一次性全面掌握XML文档的解析过程。 一、DOM解析XML DOM,即文档对象模型,是W3C组织制定的一种解析XML的标准。它将XML文档转换为一个...
4. **XPath查询**:DOM4J支持XPath,这是一种强大的查询语言,可以用来查找XML文档中的特定元素、属性或者文本。通过`XPathExpression`和`XPathFactory`,我们可以编写XPath表达式并执行查询,高效地定位到需要的...
DOM4J-1.6.1是该库的一个版本,包含了对XML文档的各种操作功能,如读取、写入、修改、遍历和搜索等。这个版本可能包含了一些特定的改进和修复,以提高性能和兼容性。 在DOM4J中解析XML时,常常需要配合XPath...
总的来说,DOM4J是Java开发中处理XML的强大工具,无论是解析、构建还是修改XML文档,它都能提供高效和便捷的解决方案。通过学习和掌握DOM4J,开发者可以更好地利用XML进行数据交换和处理,提高项目开发的效率。结合...
2. **构建XML文档**:DOM4J提供了丰富的API,允许开发者创建新的XML文档,或者修改已有的XML文档。通过Element、Attribute、Text等对象,可以轻松构建复杂的XML结构。 3. **XPath支持**:DOM4J支持XPath表达式,这...
在Java中,解析XML文件是常见的任务,用于读取、修改或创建XML文档。本节将深入探讨Java中解析XML的方法,特别是使用DOM4J库进行解析。 XML解析方法主要有四种:DOM(文档对象模型)、SAX(简单API for XML)、StAX...