文章标签 ‘XML’

最近在做一个小项目,需要读取数据字典XML中的内容取出相应的配置信息,在前台用Extjs生成一个查询框架,刚开始我是自己利用dom的开源lib以SAX的方式读数据字典,生成相应的java对象,但总感觉自己写的读取方法不是很完美,所以想在网上找找更好的解决办法。百度一下,看到了 Commons-Digester这个开源的jar文件,Digester本来仅仅是Jakarta Struts中的一个工具,用于处理struts-config.xml配置文件,后来就独立出来用于解析XML文件。

2010年4月17日23:43 | 评论关闭
分类: OpenSource

一个偶然的点击发现了一个使用纯Java编写的处理XML的类库,里面涉及了java底层的一些知识,包括反射、泛型、注释等等。决定从这个小框架的研究开始学习java jdk的底层知识。

2010年1月26日22:29 | 评论关闭
分类: OpenSource

JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 Java + XML = JDOM ! JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。 Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlin公开发布了它的1.0版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。在接下来的篇幅里将介绍怎么用Jdom去读写一个已经存在的XML文档。

2009年12月9日13:10 | 评论关闭
分类: OpenSource

公司项目解析xml使用的是SAX(Stream API for XML)解析xml数据字典。关于SAX,Simple API for XML(简称SAX)是个循序存取XML的解析器API。SAX提供一个机制从XML文件读取资料。它是除了文档对象模型(DOM)的另外一种流行选择。 优点 SAX解析器在某些方面优于DOM风格解析器。SAX解析器的内存使用量一般远低于DOM解析器使用量。DOM解析器在任何处理开始之前,必须把整棵树放在内存,所以DOM解析器的内存使用量完全根据输入资料的大小。相对来说,SAX解析器的内存内容,是只基于XML档案的最大深度(XML树的最大深度)和单一XML项目上XML属性储存的最大资料。这两个总是比整颗解析树本身还小。 因为SAX事件驱动的本质,处理文件通常会比DOM风格的解析器快。内存存取耗时,所以DOM较大的内存 使用也是一个效能议题。 因为SAX的本质,从磁盘串流读取是可行的。无法放入内存的XML文件只可能使用SAX解析器(或另外的 串流XML解析器)来处理。 缺点 SAX事件驱动的模型对于XML解析很有用,但它确实有某些缺点。 某些种类的XML验证需要存取整份文件。例如,一个DTDIDREF 属性需要文件内有项目使用指定字串当成 DTD ID属性。要在SAX解析器内验证,必须追踪每个之前遇过的ID和IDREF属性,检查是否有任何相符。 更甚者,一个IDREF不符合ID,使用者只会在整份文件都解析完后才发现,若这种连结对于建立有效输 出是重要的,那浪费在处理整份文件的时间只能舍弃。 另外,某些XML处理仅要求存取整份文件。举例来说,XSLT及XPath需要能够任何时间存取任何解析过的 XML树。当SAX以用来建构此树时,DOM解析器在设计上已经是如此了。

2009年10月30日11:28 | 评论关闭
分类: OpenSource
标签: , ,

最近开发项目,需要动态读取xml文件,生成Ext界面,xml文件通过前台页面的按钮事件传进来,可以参照此文章:【javascript 弹出子窗口】
获取弹出窗口url后的参数方法:
// 获取url后的参数值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getQueryStringValue(name) {
	var url = window.location.search;
	if (url.indexOf('?') < 0) {
		return null
	}
	var index = url.indexOf(name + "=");
	if (index < 0) {
		return null
	}
	var args = url.indexOf('&', index);
	var value;
	if (args > 0) {
		value = url.substring(index + name.length + 1, args);
	} else {
		value = url.substring(index + name.length + 1, url.length);
	}
	return value;
}
2009年10月22日10:35 | 评论关闭
分类: JavaScript
标签: ,