`
hacker_zxf
  • 浏览: 148136 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

apache Digester

    博客分类:
  • XML
阅读更多
http://commons.apache.org/digester/commons-digester-1.6/docs/api/

<?xml version="1.0" encoding="UTF-8"?>
<mans test="123123123">
  <man name="123" age="12"/>
  <man name="456" age="34"/>
</mans>



public class Man {
	String name;
	int age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

import java.util.ArrayList;
import java.util.List;

public class Mans {

	List<Man> mans = new ArrayList<Man>();

	public void addMan(Man man) {
		mans.add(man);
	}

	public List<Man> getMans() {
		return mans;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		for (Man man : mans) {
			sb.append("man name:").append(man.getName()).append("age:").append(
					man.getAge()).append(" | ");
		}
		return sb.toString();
	}
}





import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.digester.AbstractObjectCreationFactory;
import org.apache.commons.digester.Digester;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;

public class DigesterTest {
	List<Mans> manList;

	public void xmlParse() throws IOException, SAXException {
		Digester digester = new Digester();
		manList = new ArrayList<Mans>();
		digester.addFactoryCreate("mans", new AbstractObjectCreationFactory() {
			@Override
			public Object createObject(Attributes attributes) throws Exception {
				// System.out.println(attributes.getValue("test"));
				Mans mansInner = new Mans();
				System.out.println(mansInner.toString());
				manList.add(mansInner);
				return mansInner;
			}
		});
		digester.addFactoryCreate("mans/man",
				new AbstractObjectCreationFactory() {

					@Override
					public Object createObject(Attributes attributes)
							throws Exception {
						int length = attributes.getLength();
						int i = 0;
						while (i < length) {
							// System.out.println(attributes.getQName(i));
							i++;
						}

						Man man = new Man();
						man
								.setAge(Integer.parseInt(attributes
										.getValue("age")));
						man.setName(attributes.getValue("name"));
						return man;
					}
				});
		digester.addSetNext("mans/man", "addMan");

		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
       URL urls = classLoader.getResource("test.xml");
       System.out.println(urls.toExternalForm());
       
       urls = this.getClass().getClassLoader().getResource("test.xml");
       System.out.println(urls.toExternalForm());

		digester.parse(urls.toExternalForm());
	}

	public void print() {
		if (manList != null && manList.size() > 0) {
			for (Mans mans : manList) {
				System.out.println(mans.toString());
			}
		} else {
			System.out.println("manList is zerro");
		}
	}

	public static void main(String[] args) throws IOException, SAXException {
		DigesterTest test = new DigesterTest();

		test.xmlParse();
		test.print();

		// File file = new
		// File("/home/test/work/DigesterTest/source/test.xml");
		//
		// System.out.println(file.toURI().toURL().toExternalForm());
		// System.out.println(file.toURI().toURL().toString());
		//		
		// File file = new
		// File("/home/test/work/DigesterTest/source/test.xml");
		// URL url = file.toURL();
		// URLConnection connection = url.openConnection();
		// connection.setUseCaches(false);
		// InputStream stream = connection.getInputStream();
		// InputSource source = new InputSource(stream);
		// source.setSystemId(url.toExternalForm());
	}
}
分享到:
评论

相关推荐

    使用Apache的Digester来解析XML文档

    Apache Digester是一个强大的Java库,专门用于将XML文档解析成对象模型。在处理XML到Java对象映射时,它提供了一种简洁的方式,避免了手动编写大量繁琐的XML解析代码。这个工具尤其适用于那些需要频繁从XML配置文件...

    commons-digester3-3.2-API文档-中英对照版.zip

    标签:apache、commons、digester3、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

    commons-digester3-3.2-API文档-中文版.zip

    标签:apache、commons、digester3、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...

    用到digester项目,直接解析存入数据库

    标题中的“用到digester项目,直接解析存入数据库”指的是使用Apache Digester库来解析XML文件,并将解析后的数据直接存储到数据库中。Apache Digester是一个Java库,它允许开发者通过规则配置来关联XML文档的元素与...

    使用digester配置rule.xml规则来解析自定义的xml文件-代码

    Apache Digester是一个非常实用的工具,它允许我们通过定义一系列规则来自动化这个过程。本篇文章将深入探讨如何使用Digester和`rule.xml`配置文件来解析自定义的XML文件。 首先,让我们了解什么是Apache Digester...

    XML的解析之——使用Digester

    本文将深入探讨如何使用Apache的 Digester 库来解析XML文档,这是一款强大的工具,能够将XML数据映射到Java对象,简化了处理XML的过程。 Digester 是Apache Commons项目的一部分,它提供了一种规则驱动的方法来处理...

    digester jar包大全

    而Apache Digester库则为开发者提供了一种高效、方便的方式来处理XML文档,特别是对于那些需要将XML数据映射到Java对象的情况。"digester jar包大全"集合了所有与Digester相关的jar文件,是Java开发者处理XML解析...

    digester3.2 源码

    Apache Digester是一个强大的Java库,用于在XML文档和Java对象之间建立映射关系,通过规则来自动解析XML并创建或更新对象结构。在digester3.2版本中,我们能够深入理解其内部工作机制,提升XML处理的效率和灵活性。 ...

    org.apache.commons.digester解析XML.rar

    Apache Commons Digester是一个Java库,专门用于将XML文档解析成对象结构。这个“org.apache.commons.digester解析XML.rar”压缩包包含了一个测试工程,它演示了如何使用Digester库来解析XML文件并映射到Java对象上...

    Digester学习

    Apache Digester 是一个用于解析XML文档并将其映射到Java对象的工具,尤其在处理配置文件或对象关系映射时,它能极大地简化工作流程。这个强大的工具允许开发者通过规则来定义XML元素如何映射到Java对象的方法调用,...

    Apache Commons Digester 的使用

    NULL 博文链接:https://longsy.iteye.com/blog/380360

    commons-digester.jar

    `commons-digester.jar`是Apache Commons项目中的一个组件,主要功能是解析XML文档并根据预定义的规则自动创建和填充Java对象。这个组件在Java应用程序中尤其有用,特别是那些需要从XML配置文件中构建复杂对象层次...

    使用Apache_Commons_Digester

    ### 使用Apache Commons Digester开发指南 #### 概述 Apache Commons Digester 是一款基于 Java 的开源库,专门用于简化 XML 文件解析的过程。它利用 SAX(Simple API for XML)解析器来解析 XML 数据,并通过一...

    利用commons-digester解析xml

    标题“利用commons-digester解析XML”涉及到的是Java开发中的一种处理XML文档的工具——Apache Commons Digester。这个库提供了一种方便的方式来映射XML文档结构到Java对象,从而简化了XML数据的处理过程。 Apache ...

    Apache xml转换java对象 Digester

    ### Apache XML转换Java对象——Digester #### 一、引言 在软件开发过程中,XML是一种常见的数据交换格式。为了方便地将XML数据转换为Java对象,Apache Commons库提供了一个强大的工具——`Digester`。本文将详细...

    jenkins subversion 插件 2.15.4

    解决jenkins 升级后报:FATAL: org/apache/commons/digester/Digester java.lang.ClassNotFoundException: org.apache.commons.digester.Digester 的问题

    commons-digester-1.7.jar.zip

    《Apache Commons Digester 1.7:解析XML的利器》 Apache Commons Digester是一个Java库,主要用于解析XML文档,并根据预定义的规则将其转换为Java对象。在标题和描述中提到的"commons-digester-1.7.jar.zip"是一个...

    rh-maven33-apache-commons-digester-1.8.1-19.13.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    commons-digester-2.1.jar

    `commons-digester-2.1.jar` 是Apache Commons项目中的一个组件,主要负责XML文档的解析和对象的创建与绑定。Apache Commons Digester库提供了一种规则驱动的方法来解析XML文档,并根据预定义的规则将XML数据映射到...

    java XML和对象的互转

    除了Java自带的库外,还有一些第三方库,如Apache Digester和XStream,它们提供更灵活和易用的方法来实现对象和XML的转换。例如,XStream可以直接通过简单的配置将XML转换为Java对象,而无需编写额外的解析代码。 5...

Global site tag (gtag.js) - Google Analytics