解析XML技术
在开发系统时,我们经常会使用到xml描述的文件,我们基本采用如下几种方式进行解析:
1dom
DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。DOM 使用起来也要简单得多。
另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如 SAX。
Bean文件:
package com.test;
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class MyXMLReader{
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();
}
System.out.println("运行时间:"+(System.currentTimeMillis() - lasting)+" 毫秒");
}
}
10k消耗时间:265 203 219 172
100k消耗时间:9172 9016 8891 9000
1000k消耗时间:691719 675407 708375 739656
10000k消耗时间:OutOfMemoryError
2.SAX
DOM 采用建立树形结构的方式访问
相关文档:
在service(spring)中完成
step 1:
打开一个session
写 sql 语句,
注意点:写sql语句时,所查询的试图为:kangaroo_VW_UnitView,此试图的生成
有 kangaroo_unit表左连接到kangaroo_img表而生成。
step 2:
把所查询的符合条件的集合放入临时的ArrayList中,并对临时的ArrayList进行
迭代。
step 3:
把迭代出来的集 ......
在不能上外网的情况下,我们在eclipse中写xml时无法得到标签的提示,因为xml中的dtd获取不到.
看了下外面的资料。说是选择"window"-->"preferences"--->"Myeclipse Enterprise Workbench"-->"Files and Editors"-->"xml"-->"xml category"
在user specified Entries中新增一个. ( ......
用URLLoader加载XML,然后将data转化为ByteArray
用byteArray.readMultiByte(bytes.length,"utf-8")
然后将转化后的字符串再强制转化为XML
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.Binary;
var urlRequest:URLRequest = new URLRequest(source);
loader.addEventListener( ......
假设xml文件是
<?xml version="1.0" encoding="gb2312" ?>
- <books auth="wren">
- <book id="B01">
<name>哈里波特 </name>
<price>10 </price>
<memo>这是一本很好看的书。 </memo>
</book>
- <boo ......
转自江边孤鸟: http://blog.csdn.net/jbgh608/archive/2007/08/31/1767414.aspx
W3school 的xsl教程: http://www.w3school.com.cn/xsl/index.asp
产品几年前使用ASP,后来升级到.Net 1.1,再升级到2.0,一直都有用XSLT转换XML生成网页的方式,稍微整理下。
XML file:
<?xml version="1.0"& ......