用Digester 解析xml,我晕了,大侠们来帮个忙!!

问题描述

xml文件很简单:如下<person> <hands> <hand type ="left"> <hand type ="right"> <hands><person>用Digester解析哦,我仿照apache提供的链接教材试了半天没出来,-_-!!!http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html问题补充:to wangxuliangboy :<hand type ="left"> <hand>节点的type如何处理,我自己的代码与你的处理过程很类似,只是多了:digester.addSetProperties( "person/hands/hand ", "type", "type" );但返回的总是有问题,后台却不报错。。。!!

解决方案

不是你这样读取属性的..digester.addSetProperties("person"); //根据<person>元素的属性(attribute),对刚创建的person对象的属性(property)进行设置但你的Person对象里面必须有这些属性的get,set方法
解决方案二:
digester.addSetProperties("foo"); //根据<foo>元素的属性(attribute),对刚创建的Foo对象的属性(property)进行设置
解决方案三:
Digester digester = new Digester();digester.setValidating(false); //不进行XML与相应的DTD的合法性验证digester.addObjectCreate("person","与Person对应的类,比如:aa.Person"); //遇到<person>时创建一个person对象,并将其放在栈顶digester.addObjectCreate("person/hands", "与hands对应的类型"); //当遇到<person>的子元素<hands>时创建一个hands对象,并将其放在栈顶。//你的hand对象里面应该有type属性 digester.addObjectCreate("person/hands/hand", "与hand对应的类型"); //当遇到<person>的子元素<hands>的子元素<hand>时创建一个hand对象,并将其放在栈顶。//当在次遇到person/hands/hand结点时,调用addHand方法.这说明在与hands对应的类型中,你要加入一个addHand方法,//比如:public void addHand(Hand h){List.add(h);}digester.addSetNext("person/hands/hand","addHand","与hand对应的类型"); //当再次遇到<foo>的子元素<bar>时创建一个mypackage.Bar对象,并将其放在栈顶,同时调用第二栈顶元素(Foo对象)的addBar方法//最后在调用parse方法的时候会返回根对象Person foo=(Person)digester.parse(Digester_XMLParse.class.getResource("")+"dig.xml");System.out.println(foo.getName());

时间: 2024-08-24 12:12:59

用Digester 解析xml,我晕了,大侠们来帮个忙!!的相关文章

使用Digester解析XML文档示例

xml|示例 一. 概述 解析XML文档方面有不少的方法,也有不少的工具包可用,这里介绍的是来自Apache Jakarta的Digester,使用其解析XML文件非常方便而不需要过多的关心底层的具体解析过程. Digester最早出现在Struts中,后来随着Struts的发展以及其的公用性而被提到commens中独自立项,其底层实现的是SAX解析.当前版本为:1.5 二. 正文 1. 安装与配置 使用Digester需要如下几个软件包: Digester ,BeanUtils, Collec

Digester解析XML文档Sample

xml 解析XML文档 Digester的使用相当简单,请参看如下的SampleDigester类中的注释,这里不再拗述: /*============================================================ * Copyright:www.skyinn.org (c) 2002 - 2003 All rights reserved. * File:org.skyinn.quasar.config.SampleDigester * Inculde:Samp

digester解析xml 使用时如何判断一个标签是否存在

问题描述 digester解析xml 使用时如何判断一个标签是否存在 在解析时会碰到比如深搜时,有些标签是结束标志,没有任何值和属性,比如出现就继续解析,没有则回到上层,请问如何判断一个标签是否存在

使用digester解析xml

问题描述 需要解析的xml<ffv><a>1</a><a>2</a><a>3</a><a>4</a></ffv>digester的xml<digester-rules><patternvalue="ffv"><object-create-ruleclassname="com.inspur.xmlparser.common.Ffv

digester解析xml的一个小问题

问题描述 <?xmlversion="1.0"encoding="GBK"?><config><defaulthead="/theme/sm"foot="/theme/sm"><css></css><js></js><vars><title>sm</title><charset>GBK</c

大侠们。帮下忙

问题描述 publicclassTestJni{publicnativevoidprintf();publicstaticvoidmain(String[]args){System.loadLibrary("nativeCode");newTestJni().printf();}}Exceptioninthread"main"java.lang.UnsatisfiedLinkError:nonativeCodeinjava.library.pathatjava.la

一键解析XML文件(利用Digester实现可配置)

大部分程序员,平时工作中除了与Bug相伴之外,想必也会很多种多样的文件打交道吧.当然,XML 就是其中之一,获取交互数据,创建规则等等,都离不开他.XML是个非常强大的描述语言,相比而言,txt之流则功力较弱了些.      XML那么重要,单解析XML的工作却繁杂无聊.原因如下:解析XML工具繁杂,每个人掌握的东西不一样;学习新工具又浪费时间;解析规则只是个体力活.     程序员的辛苦,也就体现于此了.一般程序员总是抱怨忙啊忙,累啊累.我们作为程序员来说,更应该想一想想法设法吧东西提炼一下,

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!

Java解析XML格式数据的方法详解_java

最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完善,人们越来越发现它所具有的优点:例如标记语言可扩展,严格的语法规定,可使用有意义的标记,内容存储和表现分离等等优势注定了该语言从诞生之日起就会走向辉煌. XML 语言在成为 W3C 标准之后进入到了一个快速发展的时期,当然它本身所具有的一系列优点和优势也注定了各大技术厂商对它的偏爱,Java 作为软件行业的一种开发技术也迅速作出了反应,出现了多种对 XML 支持的工具,本文将会从这个角度对 Jav