- 浏览: 126463 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
ddnzero:
...
java用For循环Map -
zhangxing8086:
...
Sql联合查询 -
sgp420:
没这个函数,要实现这个还真有些难度;
oracle rank()函数总结 -
yjshengshe:
现在看的怎么样呢
开始看think in java了 -
yinghuayu1324117:
look look
oracle rank()函数总结
xml 代码
用Digester将XML文件读取到java中。
要导入的XML文件:
xml 代码
- <!---->xml version="1.0" encoding="GB2312"?>
- <PACKET type="RESPONSE" version="1.0" >
- <HEAD>
- <REQUEST_TYPE>50REQUEST_TYPE>
- <TYPE_CODE>1TYPE_CODE>
- <ERROR_MESSAGE>ERROR_MESSAGE>
- HEAD>
- <BODY>
- <BASE_PART>
- <CLAIM_CODE>000A00004108000002RICLAIM_CODE>
- BASE_PART>
- <CLAIM_LIST>
- <CLAIM_DATA>
- <CLAIM_COMPANY>A000CLAIM_COMPANY>
- <REPORT_NO>0001REPORT_NO>
- <CLAIM_NO>2565485CLAIM_NO>
- <POLICY_NO>C131031158978POLICY_NO>
- <ACCIDENT_TIME>2004012212ACCIDENT_TIME>
- <REPORT_TIME>2005061208REPORT_TIME>
- <ENDCASE_DATE>20050712ENDCASE_DATE>
- <UNCLAIM_AMOUNT>200.0UNCLAIM_AMOUNT>
- <CLAIM_AMOUNT>111.2CLAIM_AMOUNT>
- <STATUS>12333STATUS>
- <ACCIDENT_PLACE>AAAACCIDENT_PLACE>
- <ACCIDENT_DESCRIPTION>ADFACCIDENT_DESCRIPTION>
- <LIABILITY_AMOUNT>3LIABILITY_AMOUNT>
- CLAIM_DATA>
- <CLAIM_DATA>
- <CLAIM_COMPANY>A001CLAIM_COMPANY>
- <REPORT_NO>0002REPORT_NO>
- <CLAIM_NO>中文CLAIM_NO>
- <POLICY_NO>是不会POLICY_NO>
- <ACCIDENT_TIME>有ACCIDENT_TIME>
- <REPORT_TIME>乱REPORT_TIME>
- <ENDCASE_DATE>码ENDCASE_DATE>
- <UNCLAIM_AMOUNT>的UNCLAIM_AMOUNT>
- <CLAIM_AMOUNT>222.2CLAIM_AMOUNT>
- <STATUS>211STATUS>
- <ACCIDENT_PLACE>12ACCIDENT_PLACE>
- <ACCIDENT_DESCRIPTION>ADFACCIDENT_DESCRIPTION>
- <LIABILITY_AMOUNT>3LIABILITY_AMOUNT>
- CLAIM_DATA>
- CLAIM_LIST>
- BODY>
- PACKET>
下面是对应的Digester文件:
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- PUBLIC "-//Jakarta Apache //DTD digester-rules XML V1.0//EN"
- "http://jakarta.apache.org/commons/digester/dtds/digester-rules.dtd">
- <digester-rules>
- <pattern value="PACKET">
- <set-properties-rule/>
- <pattern value="HEAD">
- <object-create-rule classname="com.xxxx.claim.dto.Head"/>
- <bean-property-setter-rule pattern="REQUEST_TYPE" propertyname="requestType"/>
- <bean-property-setter-rule pattern="TYPE_CODE" propertyname="typeCode"/>
- <bean-property-setter-rule pattern="ERROR_MESSAGE" propertyname="errorMessage"/>
- <set-next-rule methodname="setHead"/>
- pattern>
- <pattern value="BODY">
- <object-create-rule classname="com.xxxx.claim.dto.Body"/>
- <pattern value="BASE_PART">
- <object-create-rule classname="com.xxxx.claim.dto.BasePart"/>
- <bean-property-setter-rule pattern="CLAIM_CODE" propertyname="claimCode"/>
- <set-next-rule methodname="setBasePart"/>
- pattern>
- <pattern value="CLAIM_LIST/CLAIM_DATA">
- <object-create-rule classname="com.xxxx.claim.dto.ClaimData"/>
- <bean-property-setter-rule pattern="CLAIM_COMPANY" propertyname="claimCompany"/>
- <bean-property-setter-rule pattern="REPORT_NO" propertyname="reportNo"/>
- <bean-property-setter-rule pattern="CLAIM_NO" propertyname="claimNo"/>
- <bean-property-setter-rule pattern="POLICY_NO" propertyname="policyNo"/>
- <bean-property-setter-rule pattern="ACCIDENT_TIME" propertyname="accidentTime"/>
- <bean-property-setter-rule pattern="REPORT_TIME" propertyname="reportTime"/>
- <bean-property-setter-rule pattern="ENDCASE_DATE" propertyname="endcaseDate"/>
- <bean-property-setter-rule pattern="UNCLAIM_AMOUNT" propertyname="unclaimAmount"/>
- <bean-property-setter-rule pattern="CLAIM_AMOUNT" propertyname="claimAmount"/>
- <bean-property-setter-rule pattern="STATUS" propertyname="status"/>
- <bean-property-setter-rule pattern="ACCIDENT_PLACE" propertyname="accidentPlace"/>
- <bean-property-setter-rule pattern="ACCIDENT_DESCRIPTION" propertyname="accidentDescription"/>
- <bean-property-setter-rule pattern="LIABILITY_AMOUNT" propertyname="liabilityAmount"/>
- <set-next-rule methodname="addClaimData"/>
- pattern>
- <set-next-rule methodname="setBody"/>
- pattern>
- pattern>
- digester-rules>
java调用文件:
java 代码
- package com.xxxx.claim.util;
- import java.io.InputStream;
- import java.net.URL;
- import junit.framework.TestCase;
- import org.apache.commons.digester.Digester;
- import org.apache.commons.digester.xmlrules.DigesterLoader;
- import com.xxxx.claim.dto.PlatformPacket;
- /**
- * @author wanwei
- * @since 2007-5-28
- */
- public class DigesterTest extends TestCase
- {
- private static boolean testXmlRule = true;
- public void testXmlRule()
- {
- if( !testXmlRule ) return;
- URL rulesURL = ClassLoader.getSystemResource("report_back_rule.xml");
- Digester d = DigesterLoader.createDigester(rulesURL);
- PlatformPacket pp = new PlatformPacket();
- d.push(pp);
- try
- {
- InputStream xmlFile = ClassLoader.getSystemResourceAsStream("report_back.xml");
- //xmlFile = CommonUtils.inputStream2String(xmlFile);
- d.parse(xmlFile);
- } catch( java.io.IOException ioe )
- {
- System.out.println("Error reading input file:" + ioe.getMessage());
- System.exit(-1);
- } catch( org.xml.sax.SAXException se )
- {
- System.out.println("Error parsing input file:" + se.getMessage());
- System.exit(-1);
- }
- System.out.println(pp.getVersion());
- }
- }
剩下的就是对应的java dto了。
java 代码
- package com.xxxx.claim.dto;
- /**
- * @author wanwei
- * @since 2007-5-28
- */
- public class PlatformPacket
- {
- private String type = "";
- private String version = "";
- private Head head;
- private Body body;
- public String getType()
- {
- return type;
- }
- public void setType(String type)
- {
- this.type = type;
- }
- public String getVersion()
- {
- return version;
- }
- public void setVersion(String version)
- {
- this.version = version;
- }
- public void setHead(Head head)
- {
- this.head = head;
- }
- public Head getHead()
- {
- return head;
- }
- public Body getBody()
- {
- return body;
- }
- public void setBody(Body body)
- {
- this.body = body;
- }
- }
java 代码
- package com.xxxx.claim.dto;
- /**
- * @author wanwei
- * @since 2007-5-28
- */
- public class Head
- {
- private String requestType ;
- private String typeCode ;
- private String errorMessage ;
- public String getErrorMessage()
- {
- return errorMessage;
- }
- public void setErrorMessage(String errorMessage)
- {
- this.errorMessage = errorMessage;
- }
- public String getRequestType()
- {
- return requestType;
- }
- public void setRequestType(String requestType)
- {
- this.requestType = requestType;
- }
- public String getTypeCode()
- {
- return typeCode;
- }
- public void setTypeCode(String typeCode)
- {
- this.typeCode = typeCode;
- }
- }
java 代码
- package com.xxxx.claim.dto;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author wanwei
- * @since 2007-5-28
- */
- public class Body
- {
- private BasePart basePart;
- private List claimList = new ArrayList();
- public void addClaimData(ClaimData badyData)
- {
- claimList.add(badyData);
- }
- public BasePart getBasePart()
- {
- return basePart;
- }
- public void setBasePart(BasePart basePart)
- {
- this.basePart = basePart;
- }
- public List getClaimList()
- {
- return claimList;
- }
- public void setClaimList(List claimList)
- {
- this.claimList = claimList;
- }
- }
java 代码
- package com.xxxx.claim.dto;
- /**
- * claimData
- * @author wanwei
- * @since 2007-6-5
- */
- public class ClaimData
- {
- private String claimCompany;
- private String reportNo;
- private String claimNo;
- private String policyNo;
- private String accidentTime;
- private String reportTime;
- private String endcaseDate;
- private Double unclaimAmount;
- private Double claimAmount;
- private String status;
- private String accidentPlace;
- private String accidentDescription;
- private Double liabilityAmount;
- public String getAccidentDescription()
- {
- return accidentDescription;
- }
- public void setAccidentDescription(String accidentDescription)
- {
- this.accidentDescription = accidentDescription;
- }
- public String getAccidentPlace()
- {
- return accidentPlace;
- }
- public void setAccidentPlace(String accidentPlace)
- {
- this.accidentPlace = accidentPlace;
- }
- public String getAccidentTime()
- {
- return accidentTime;
- }
- public void setAccidentTime(String accidentTime)
- {
- this.accidentTime = accidentTime;
- }
- public Double getClaimAmount()
- {
- return claimAmount;
- }
- public void setClaimAmount(Double claimAmount)
- {
- this.claimAmount = claimAmount;
- }
- public String getClaimCompany()
- {
- return claimCompany;
- }
- public void setClaimCompany(String claimCompany)
- {
- this.claimCompany = claimCompany;
- }
- public String getEndcaseDate()
- {
- return endcaseDate;
- }
- public void setEndcaseDate(String endcaseDate)
- {
- this.endcaseDate = endcaseDate;
- }
- public Double getLiabilityAmount()
- {
- return liabilityAmount;
- }
- public void setLiabilityAmount(Double liabilityAmount)
- {
- this.liabilityAmount = liabilityAmount;
- }
- public String getPolicyNo()
- {
- return policyNo;
- }
- public void setPolicyNo(String policyNo)
- {
- this.policyNo = policyNo;
- }
- public String getReportNo()
- {
- return reportNo;
- }
- public void setReportNo(String reportNo)
- {
- this.reportNo = reportNo;
- }
- public String getReportTime()
- {
- return reportTime;
- }
- public void setReportTime(String reportTime)
- {
- this.reportTime = reportTime;
相关推荐
【标题】:“Digester读取XML学习” 在Java开发中,处理XML文件是常见的任务,尤其是在构建配置驱动的应用程序时。Apache Commons Digester是一个强大的工具,它允许开发者将XML文件解析为Java对象,通过匹配XML...
本文将深入探讨如何使用Digester解析XML文件,以及在实际项目中如何应用。 首先,让我们了解什么是Apache Commons Digester。这是一个Java库,它的主要功能是读取XML文件,并基于一系列预先定义的规则(Rule),...
Digester与DOM、SAX、JAXB等其他XML解析库相比,更注重于将XML转换为Java对象,适合于需要频繁读写XML的场景。但在大型项目中,可能需要考虑其复杂性和维护性。 通过本教程,你应该对使用Apache Commons Digester...
在Java开发中,XML文件常用于存储数据,配置信息等,因为其结构清晰、易于读写。Digester是Apache Commons项目中的一个库,专门用于将XML文件内容映射到Java对象,实现XML到Java对象的自动绑定。这个"digester解析...
3. **解析 XML**:创建好 Digester 实例后,使用 `parse` 方法读取 XML 文件并执行预定义的规则。代码示例如下: ```java Digester digester = new Digester(); digester.setValidating(false); // 关闭验证,...
Digester能够根据定义好的规则自动将XML文档转换成Java对象,非常适合用在配置文件读取、数据交换等场景。 #### 二、Digester的基本原理 1. **SAX事件驱动**:Digester内部使用SAX事件模型来解析XML文档。当解析器...
通过以上分析可以看出,使用`org.apache.commons.digester.xmlrules`包中的类,我们可以通过编写XML规则文件来灵活地控制Digester对XML数据的解析过程。这种方式不仅简化了代码的编写,还提高了程序的可维护性和扩展...
在Digester解析XML时,BeanUtils可以用来方便地读取和设置Java对象的属性值,使得数据绑定更加灵活。 使用这些库,开发者可以创建一个XML配置文件,定义XML结构与Java对象之间的映射规则。例如,XML文件中的每个`...
以下是一个具体的使用示例,展示如何使用Digester处理XML文件: ```java // 导入必要的包 import org.apache.commons.digester.Digester; import org.apache.commons.logging.Log; import org.apache.commons....
以下是一个简化的`deregister`方法示例,展示了如何使用Digester从XML文件中读取图表配置信息: ```java public void deregister(URL url) throws IOException, SAXException { InputStream is = new ...
5. **解析XML**:最后,使用配置好的 Digester 对象解析XML文件: ```java Root root = null; try (InputStream is = new FileInputStream("path_to_xml_file.xml")) { root = digester.parse(is); } catch ...
最后,调用`digester.parse()`方法读取XML文件并执行消化过程: ```java InputStream in = new FileInputStream("config.xml"); try { Config config = (Config) digester.parse(in); System.out.println(config)...
3. **解析XML**:使用 Digester 的 `parse()` 方法读取XML文件,根据预先定义的规则进行处理。 4. **结果处理**:最后,Digester会生成一个对象模型,代表了XML文档的内容。 以下是一个简单的 Digester 使用示例: ...
我们可能需要读取XML文件中的数据,例如,使用DOM API的`DocumentBuilderFactory`和`DocumentBuilder`来创建`Document`对象,然后通过`getElementsByTagName`、`getElementsByTagnameNS`等方法查找元素,再用`...
`Digester`使用DOM4J来读取和处理XML文档。 3. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库简化了JavaBeans的使用,提供了一些便捷的方法来操作对象的属性。`Digester`利用BeanUtils来反射调用Java...
当解析XML时,Digester会逐行读取XML文档,每当遇到一个匹配的元素,就会执行与之关联的规则。这个过程可以分为以下几步: 1. **初始化**:首先,我们需要创建一个Digester实例,并设置必要的配置,如命名空间处理...
这个示例演示了如何使用Apache Commons Digester解析XML文件,将XML数据转换为Java对象。通过定义规则,我们可以轻松地处理复杂的XML结构,并将它们映射到Java对象模型中。这在处理大量配置数据或需要从XML文件加载...
3. **解析XML**: 使用`parse()`方法读取XML文件并执行规则链。每当匹配到XML文档中的一个元素,对应的规则就会被执行。 4. **结果处理**: 解析完成后,Java对象模型已经构建完毕,可以进行后续的业务处理。 在实际...
标题中的“用到digester项目,直接解析存入数据库”指的是使用Apache Digester库来解析XML文件,并将解析后的数据直接存储到数据库中。Apache Digester是一个Java库,它允许开发者通过规则配置来关联XML文档的元素与...
一个简单的例子是创建一个XML配置文件,描述一个对象树,然后使用Digester来根据这个配置文件动态生成相应的Java对象。例如,XML文件中描述了一个Person对象,包含name和age属性, Digester可以通过如下方式解析: ...