- 浏览: 631166 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
d1438138:
[img][/img]
google api 的一些神奇使用 -
waykingeye:
[i][b][u]引用[list]
[*][img][url] ...
No result defined for action and result input -
tss0823:
...
No result defined for action and result input -
yahier:
有什么办法能够捕捉,然后给出自定义的提示呢
No result defined for action and result input -
chen_lian:
恩恩 按照上面的代码测试一下觉得很对
java创建目录
很久以前我写过一个xml操作一,但是很久没有下文了,最近又要用到xml了,特意补充些,首先是别人的代码
写道
Xml代码
<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>河南省郑州市</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
<ADDR>河南省郑州市二七区</ADDR>
</VALUE>
</RESULT>
<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>河南省郑州市</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
<ADDR>河南省郑州市二七区</ADDR>
</VALUE>
</RESULT>第一种 DOM 实现方法:
Java代码
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class MyXMLReader2DOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i = 0; i < nl.getLength(); i++) {
System.out.print("车牌号码:"+ doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
System.out.println("车主地址:"+ doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class MyXMLReader2DOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i = 0; i < nl.getLength(); i++) {
System.out.print("车牌号码:"+ doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
System.out.println("车主地址:"+ doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}第二种,DOM4J实现方法:
Java代码
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class MyXMLReader2DOM4J {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Element foo;
for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
foo = (Element) i.next();
System.out.print("车牌号码:" + foo.elementText("NO"));
System.out.println("车主地址:" + foo.elementText("ADDR"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class MyXMLReader2DOM4J {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Element foo;
for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
foo = (Element) i.next();
System.out.print("车牌号码:" + foo.elementText("NO"));
System.out.println("车主地址:" + foo.elementText("ADDR"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}第三种 JDOM实现方法:
Java代码
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class MyXMLReader2JDOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("data_10k.xml"));
Element foo = doc.getRootElement();
List allChildren = foo.getChildren();
for (int i = 0; i < allChildren.size(); i++) {
System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());
System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class MyXMLReader2JDOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("data_10k.xml"));
Element foo = doc.getRootElement();
List allChildren = foo.getChildren();
for (int i = 0; i < allChildren.size(); i++) {
System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());
System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
第四种SAX实现方法:
Java代码
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyXMLReader2SAX extends DefaultHandler {
java.util.Stack tags = new java.util.Stack();
public MyXMLReader2SAX() {
super();
}
public static void main(String args[]) {
long lasting = System.currentTimeMillis();
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
MyXMLReader2SAX reader = new MyXMLReader2SAX();
sp.parse(new InputSource("data_10k.xml"), reader);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
+ "毫秒");
}
public void characters(char ch[], int start, int length)
throws SAXException {
String tag = (String) tags.peek();
if (tag.equals("NO")) {
System.out.print("车牌号码:" + new String(ch, start, length));
}
if (tag.equals("ADDR")) {
System.out.println("地址:" + new String(ch, start, length));
}
}
public void startElement(String uri, String localName, String qName,
Attributes attrs) {
tags.push(qName);
}
}
这次我选择了dom4j,因为据说这个非常牛逼
写道
1 无疑,DOM4J是这场测试的获胜者,目前许多开源项目中大量采用 DOM4J,例如大名鼎鼎的 Hibernate 也用 DOM4J 来读取 XML 配置文件。如果不考虑可移植性,那就采用DOM4J吧!
虽然 DOM4J 代表了完全独立的开发结果,但最初,它是 JDOM 的一种智能分支。它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准 DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。
为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了 API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
虽然 DOM4J 代表了完全独立的开发结果,但最初,它是 JDOM 的一种智能分支。它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准 DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。
为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了 API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
实际上从代码就可以看出来dom4j的简洁明快,而不像有的代码那样让人感到繁琐。
具体我的实现,dom4j最新的jar包,都再压缩文件里面
写道
http://www.ibm.com/developerworks/cn/xml/x-dom4j.html
这个是个不错的dom4j介绍文档,大家可以看看
- domtest.rar (283.9 KB)
- 下载次数: 1
发表评论
-
struts2远程执行漏洞学习(四)
2013-05-23 00:12 23410x01 最近又有了一个新的struts2漏洞,http:/ ... -
纯转一篇关于方法句柄的,对理解很多java poc帮助很大
2013-04-19 15:16 4342http://book.2cto.com/20130 ... -
CVE-2013-1493 学习
2013-03-25 16:06 30000x01 这个又是一个java CVE,效果前几个一样, ... -
myeclipse崩溃多处理的一个小窍门
2013-01-15 20:23 31830x01 如果大家用了myeclipse10以上版本,忽然间 ... -
CVE-2013-0422 分析2
2013-01-11 23:47 34980x01 http://wcf1987.iteye.c ... -
CVE-2013-0422 学习
2013-01-11 16:26 41630x01 这个是这两天爆出来的,我构建了一个本地测试代码,主 ... -
CVE 2012 0507 分析
2012-12-17 16:00 35680x01 https://github.com/wche ... -
<找工作 十一>生产者消费者 组赛队列
2012-09-25 17:39 1527用阻塞队列实现 import java.util.co ... -
<找工作 十>生产者 消费者模型
2012-09-25 16:54 1160今天被问了个这个问 ... -
<找工作 九> 字符串全排列问题
2012-09-23 22:01 1386public class StringTest { ... -
<找工作 七>leetcode Add Two Numbers
2012-09-13 22:24 3141Add Two Numbers 链表相加 p ... -
<找工作 六>leetcode Median of Two Sorted Arrays
2012-09-13 21:25 3248http://www.leetcode.com/onlinej ... -
java+jfreechart 做股票日线数据查看系统
2012-07-02 19:56 2364如标题所说,有需要jfreechart做股票日线之类的东西的人 ... -
struts2远程执行漏洞学习(三)
2012-02-24 16:27 5125这个是终结部分了。 除了#_memb ... -
struts2远程执行漏洞学习(二)
2012-02-24 13:38 2902http://commons.apache.org/ogn ... -
struts2远程执行漏洞学习(一)
2012-02-23 16:46 2288首先,这个漏洞已经是比较早的一个了,大概影响范围是 ... -
String和input Stream的转换问题
2011-07-27 17:05 3571问题的背景是需求要生 ... -
关于apache解压zip和sleep程序程序退出问题
2011-03-02 16:26 1487前两天写了 http://wcf1987.iteye.com ... -
zip与unzip
2011-01-24 22:39 7579大家在用java做zip压缩解压缩时,java提供了原生的zi ... -
java调用外部程序控制(三)进阶
2011-01-23 16:25 1570接上次的内容,我们在用java调用外部exe,有时会发生exe ...
相关推荐
总结来说,"基于tinyxml2的xml操作库再封装"项目为C++开发者提供了一个高效、易用的XML处理工具,通过优化和扩展tinyxml2的功能,使得XML数据的处理变得更加直观和便捷。这将极大地提高开发效率,降低开发成本,尤其...
本项目案例“java对xml操作的项目案例”深入探讨了如何使用Java来读取、修改和写入XML文件。下面将详细阐述相关知识点。 一、Java与XML的交互 1. DOM解析器:Document Object Model (DOM) 是一种将整个XML文档加载...
首先,我们来理解"IBMDB2XML操作"这一主题。在DB2中,XML字段可以被存储为BLOB(Binary Large Object)类型,允许存储大量的二进制数据,如文本、图片或XML文档。当数据库表中含有XML字段时,我们可以使用SQL语句来...
9. **取节点字节集**:除了文本内容,XML节点也可能包含字节集数据,例如二进制数据。易语言提供了获取节点字节集的接口,以便处理非文本型的数据。 10. **置节点文本**和**置节点字节集**:与获取节点内容相对应,...
标题:"使用Linq To XML操作XML" 描述:"使用Linq To XML操作XML"是一篇详细介绍如何运用Linq To XML技术来高效操作XML文件的文章。Linq To XML是一种强大的API,它简化了创建、浏览和访问XML数据的过程。通过本文...
因此,了解如何使用JSTL进行XML操作对于提升Web应用的灵活性和可维护性至关重要。 #### 二、JSTL与XML的结合使用 ##### 2.1 XML在Web开发中的作用 XML (Extensible Markup Language) 是一种用于标记数据的标准语言...
### C# 中 XML 文件操作详解 #### 一、概述 在C#中处理XML文档是一项常见且实用的技术,尤其对于需要解析、修改或创建XML数据的应用程序来说非常重要。本篇文章将详细探讨如何在C#中执行基本的XML文件操作,包括...
二、读取XML文件 读取XML文件通常涉及到解析器的使用,例如DOM(Document Object Model)解析器、SAX(Simple API for XML)解析器和StAX(Streaming API for XML)。DOM将整个XML文档加载到内存中形成一棵树,便于...
二进制XML存储方案BinXML实现方法 BinXML是我个人杜撰出来的名字,不知道是否合适,也不知道是否已存在类似的解决方案。在vcer.net上我将前一段时间的这个BinXML方案贡献出来,希望能够与广大vcer分享。 当时问题的...
总结,C#.Net通过System.Xml命名空间提供了强大的XML处理能力,无论是基本的DOM模型还是高效的LINQ to XML,都为开发者提供了灵活、便捷的XML操作手段。在实际开发中,根据需求选择合适的方法可以提高代码的可读性和...
【XML第二次作业详解】 XML(eXtensible Markup Language)是一种用于标记数据的语言,它允许开发者自定义标签来描述数据的结构和意义。本作业主要涉及XML的基本应用,包括创建XML文档、定义DTD(Document Type ...
1. **备份原始文件**:在修改之前,确保对原始的`AndroidManifest.xml`进行备份,以防操作不当导致应用无法正常运行。 2. **理解AXML结构**:虽然工具简化了编辑过程,但理解AXML的结构和XML语法仍然很有帮助,避免...
接下来,我们转向第二种方法:将XML数据写入数据库。这通常涉及到数据库操作和数据绑定。C#中的ADO.NET库提供了与各种数据库交互的能力,如SQL Server。首先,我们需要连接到数据库,创建SqlCommand对象,然后将XML...
#### 二、XML文档的加载与查询 首先,我们来看一个简单的示例,该示例展示了如何使用`XmlDocument`类来加载一个名为`bookstore.xml`的XML文件,并进行节点的操作。 ```csharp XmlDocument xmlDoc = new XmlDocument...
### ORACLE操作XML函数 #### 一、XMLTYPE_instance与XPath_string 在Oracle数据库中,`XMLTYPE`是一种专门用于存储XML数据的数据类型。通过使用`XMLTYPE`字段,可以有效地管理和查询XML文档。其中,`XPath_string`...
C# 操作 XML 技术详解 XML 作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的 C# 也一样在很多领域离不开 XML。但是,C# 在很多方面对 XML 做了写封装,以至于很多操作 XML 的代码,...
### 二、C# 中的XML操作 虽然题目主要集中在SQL Server 2005 和 2008 的XML操作上,但了解C#中的XML操作也是很有帮助的。以下是一些基本的操作示例: #### 1. 加载XML文件 ```csharp using System.Xml; string ...
二、XML生成 2.1 使用`DocumentBuilderFactory`和`DocumentBuilder` 在Android中,可以使用`java.xml`包下的`DocumentBuilderFactory`和`DocumentBuilder`来创建和操作XML文档。首先,通过`DocumentBuilderFactory....
二、TXT文件操作 1. 文件读取:使用`BufferedReader`或`FileReader`类可以读取TXT文件内容,通过`readLine()`方法逐行读取。 2. 文件写入:`BufferedWriter`或`FileWriter`类可实现向TXT文件写入内容,`write()`方法...
### 一、.NET中的XML操作 #### 1. 加载XML文档 在.NET中,`System.Xml`命名空间提供了丰富的类来处理XML文档。`XmlDocument`类是最常用的,用于加载和解析XML数据。例如: ```csharp XmlDocument xmlDoc = new ...