digester 解析xml
package com.zy.tools.queryframeconfig.bean;
import com.zy.queryframe.mapping.AbstractBean;
/**
*
* @author Administrator
* 创建时间 2010-6-10 上午 9:31
*/
public class QueryItem extends AbstractBean{
private QueryResult queryResult = new QueryResult();
private DeleteQuery deleteQuery = new DeleteQuery();
private Columns columns = new Columns();
public QueryResult getQueryResult() {
return queryResult;
}
public void setQueryResult(QueryResult queryResult) {
this.queryResult = queryResult;
}
public DeleteQuery getDeleteQuery() {
return deleteQuery;
}
public void setDeleteQuery(DeleteQuery deleteQuery) {
this.deleteQuery = deleteQuery;
}
public Columns getColumns() {
return columns;
}
public void setColumns(Columns columns) {
this.columns = columns;
}
}
package com.zy.tools.queryframeconfig.bean;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.zy.queryframe.mapping.AbstractBean;
/**
*
* @author Administrator
* 创建时间 2010-6-10 上午 9:34
*/
public class Columns extends AbstractBean{
@SuppressWarnings("unchecked")
private List children = new ArrayList();
private Column column;
public List getChildren() {
return children;
}
public void setChildren(List children) {
this.children = children;
}
public void addChildren(Column children) {
this.children .add(children);
}
public Column getColumn() {
return column;
}
public void setColumn(Column column) {
this.column = column;
}
}
package com.zy.tools.queryframeconfig.bean;
public class Column
{
private Columns parent;
//字段名称
private String fieldName;
//所属表
private String tableName;
//值表达式
private String valueExpression;
//查询表达式
private String queryExpression;
//名称表达式
private String nameExpression;
//是否支持查询
private boolean suportQuery;
//是否支持报表
private boolean suportReport;
//是否支持排序
private boolean suportSort;
//是否可见
private boolean visible = true;
//列宽
private int width = 80;
public Columns getParent() {
return parent;
}
public void setParent(Columns parent) {
this.parent = parent;
}
public String getFieldName()
{
return fieldName;
}
public void setFieldName(String fieldName)
{
this.fieldName = fieldName;
}
public String getTableName()
{
return tableName;
}
public void setTableName(String tableName)
{
this.tableName = tableName;
}
public String getValueExpression()
{
return valueExpression;
}
public void setValueExpression(String valueExpression)
{
this.valueExpression = valueExpression;
}
public boolean isSuportQuery()
{
return suportQuery;
}
public void setSuportQuery(boolean suportQuery)
{
this.suportQuery = suportQuery;
}
public boolean isSuportReport()
{
return suportReport;
}
public void setSuportReport(boolean suportReport)
{
this.suportReport = suportReport;
}
public boolean isSuportSort()
{
return suportSort;
}
public void setSuportSort(boolean suportSort)
{
this.suportSort = suportSort;
}
public boolean isVisible()
{
return visible;
}
public void setVisible(boolean visible)
{
this.visible = visible;
}
public int getWidth()
{
return width;
}
public void setWidth(int width)
{
this.width = width;
}
public String getQueryExpression()
{
return queryExpression;
}
public void setQueryExpression(String queryExpression)
{
this.queryExpression = queryExpression;
}
public String getNameExpression()
{
return nameExpression;
}
public void setNameExpression(String nameExpression)
{
this.nameExpression = nameExpression;
}
}
final StringBuffer sb = new StringBuffer();
sb
.append("\n\t").append(inputValue.getValue());
String fileName =
"D:/B/S/ZYqueryframeconfigtool/src/com/zy/tools/queryframeconfig/xml/"+xmlName.getValue()+xmlType.getValue() ;
try
{
FileWriter writer = new FileWriter( fileName);
writer.append("<?xml version='1.0' encoding='utf-8'?>").append(sb);
writer.close();
}
catch ( IOException iox)
{
System.out.println("Problem writing" + fileName );
}
System.out.println("fieldName:"+sb);
final Digester digester = new Digester();
digester.addObjectCreate("query-item", QueryItem.class );
digester.addSetProperties("query-item");
digester.addObjectCreate("query-item/query", QueryResult.class);
digester.addSetProperties("query-item/query");
digester.addSetNext("query-item/query", "setQueryResult");
digester.addObjectCreate("query-item/delete-query", DeleteQuery.class);
digester.addSetProperties("query-item/delete-query");
digester.addSetNext("query-item/delete-query", "setDeleteQuery");
digester.addObjectCreate("query-item/columns", Columns.class);
digester.addSetProperties("query-item/columns");
digester.addSetNext("query-item/columns", "setColumns");
digester.addObjectCreate("query-item/columns/column", Column.class );
digester.addSetProperties("query-item/columns/column");
digester.addSetNext("query-item/columns/column", "addChildren");
QueryItem queryItem=(QueryItem) digester.parse(new File("D:/B/S/ZYqueryframeconfigtool/src/com/zy/tools/queryframeconfig/xml/"+xmlName.getValue()+".xml"));
System.out.println(((Column) queryItem.getColumns().getChildren().get(0)).getQueryExpression());
System.out.println(((Column)queryItem.getColumns().getChildren().get(1)).getQueryExpression());
List columnValue =(List) queryItem.getColumns().getChildren();
Executions.getCurrent().getDesktop().getSession().setAttribute("queryValue",columnValue );
<query-item
id=""
queryType="sql"
desc="">
<query value="">
<query-parameters>
</query-parameters>
<query-cache cacheable="false" cacheRegion=""/>
</query>
<delete-query tableName="">
</delete-query>
<columns>
<column
valueExpression=""
nameExpression="dtproperties.id"
queryExpression="p1.id"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.lvalue"
queryExpression="p1.lvalue"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.objectid"
queryExpression="p1.objectid"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.property"
queryExpression="p1.property"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.uvalue"
queryExpression="p1.uvalue"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.value"
queryExpression="p1.value"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
<column
valueExpression=""
nameExpression="dtproperties.version"
queryExpression="p1.version"
query="false"
report="false"
sort="false"
visible="true"
width="80px"/>
</columns>
</query-item>
分享到:
相关推荐
赠送jar包:commons-digester3-3.2.jar; 赠送原API文档:commons-digester3-3.2-javadoc.jar; 赠送源代码:commons-digester3-3.2-sources.jar; 赠送Maven依赖信息文件:commons-digester3-3.2.pom; 包含翻译后...
`commons-digester.jar`是Apache Commons项目中的一个组件,主要功能是解析XML文档并根据预定义的规则自动创建和填充Java对象。这个组件在Java应用程序中尤其有用,特别是那些需要从XML配置文件中构建复杂对象层次...
Digester是Apache软件基金会下的Jakarta项目中的一个Java库,主要用于简化XML到Java对象的映射过程。在处理XML文档时,它通过匹配XML元素结构到相应的Java对象的方法调用,实现了XML解析的自动化。这个工具对于那些...
`commons-digester-2.1.jar` 是Apache Commons项目中的一个组件,主要负责XML文档的解析和对象的创建与绑定。Apache Commons Digester库提供了一种规则驱动的方法来解析XML文档,并根据预定义的规则将XML数据映射到...
标题“利用commons-digester解析XML”涉及到的是Java开发中的一种处理XML文档的工具——Apache Commons Digester。这个库提供了一种方便的方式来映射XML文档结构到Java对象,从而简化了XML数据的处理过程。 Apache ...
Digester是Apache软件基金会的Jakarta项目中的一个实用工具库,它主要用来解析XML文档,并根据预定义的规则自动创建和配置Java对象。这个工具在处理XML到Java对象映射时,极大地简化了代码,避免了手动解析XML的繁琐...
Castor和Digester是两个在Java开发中用于对象与XML数据之间进行映射的库,它们简化了XML数据的解析和对象的序列化过程。在本文中,我们将深入探讨这两个库,以及如何通过实例来使用它们。 首先,让我们了解Castor。...
Java中的Digester库是Apache Commons项目的一部分,它提供了一种方便的方式来解析XML文档,并将解析结果映射到Java对象模型上。这个库特别适合于创建简单的XML到Java对象的映射,而不需要编写大量的手动解析代码。在...
Apache Commons Digester是一个Java库,专门用于将XML文档解析成对象结构。这个“org.apache.commons.digester解析XML.rar”压缩包包含了一个测试工程,它演示了如何使用Digester库来解析XML文件并映射到Java对象上...
赠送jar包:commons-digester3-3.2.jar; 赠送原API文档:commons-digester3-3.2-javadoc.jar; 赠送源代码:commons-digester3-3.2-sources.jar; 赠送Maven依赖信息文件:commons-digester3-3.2.pom; 包含翻译后...
《使用Digester解析XML的深度指南》 在Java开发中,处理XML文件是常见的任务,而Apache Commons Digester库提供了一种高效且便捷的方式来解析XML并将其映射到Java对象。本教程将深入探讨如何使用Digester来读取XML...
### Digester组件简化XML文件处理操作 #### 一、引言 随着Web技术的发展,XML作为数据交换格式的重要性日益凸显。然而,对于大型且复杂的XML文档进行解析与处理时,传统的方法如DOM(Document Object Model)和SAX...
在Java开发中,Apache Commons Digester是一个非常有用的库,它允许开发者通过XML配置来实例化、配置和关联Java对象。 Digester提供了两种主要的解析方式,即规则硬编码和独立的规则文件,这两种方法各有其特点和...
在Java开发中,Struts框架提供了一个强大的工具——Digester,用于解析XML文件并自动创建、配置Java对象。本文将详细介绍如何使用Digester处理具有嵌套结构的XML文档,并通过一个具体的实例——"DigesterXmlTest"来...
### 使用Apache Commons Digester开发指南 #### 概述 Apache Commons Digester 是一款基于 Java 的开源库,专门用于简化 XML 文件解析的过程。它利用 SAX(Simple API for XML)解析器来解析 XML 数据,并通过一...
Digester不是一个XML Parser,它只是对SAX更高层次上的一个封装使用Digester,将XML映射成javaBean. 我们无须了解SAX和DOM的解析过程,只要给Digester添加一些解析规则,就能对一个xml文件进行解析。Digester使用...
赠送jar包:commons-digester-1.8.1.jar; 赠送原API文档:commons-digester-1.8.1-javadoc.jar; 赠送源代码:commons-digester-1.8.1-sources.jar; 赠送Maven依赖信息文件:commons-digester-1.8.1.pom; 包含...
Apache Commons Digester是Java中一个强大的工具,它提供了方便的方式来解析XML文档,并将解析出的数据绑定到Java对象上,实现对象的自动创建和初始化。本示例将详细介绍如何使用Apache Commons Digester进行XML解析...
这个“digester解析xml必备包.rar”包含了三个关键的jar包,它们是实现Digester功能所必需的。 1. **commons-logging-1.2.jar**:这是Apache Commons Logging库的版本1.2。它提供了一个抽象层,允许开发者使用多种...
Commons Digester是一个强大的Java库,它允许开发人员根据XML文档中的模式规则来创建和操作对象。这个"commons-digester-1.7.zip"文件包含了Apache Commons Digester库的1.7版本,这是一个广泛用于处理XML到Java对象...