apache.commoms.digester3 解析xml文件

View Post

apache.commoms.digester3 解析xml文件

Technorati 标签: java,xml,digester,xmlrule,FromXmlRulesModule

1 简介

java解析xml,就个人所知有3种方法DOM、SAX和Digester。前两种需要编写大量代码,且不利于代码移植和复用;

Digester解析xml又有两种方式,代码和xmlrule。xmlrule方式读取规定格式的xml解析规则文件,将标签和属性值赋值到指定的Java POJO对象。

2 待解析的xml文件 ??10.0000000010.0000000010.0000000020.0000000020.0000000020.0000000030.0000000030.0000000030.0000000040.0000000040.0000000040.000000003 解析规则文件?4 存贮解析结果的Java POJOpackage xml.digester;import java.util.Vector;public class Bound{private Vector<GeoPt> pts = new Vector<GeoPt>();public void addPt(GeoPt pt){pts.add(pt);}public Vector<GeoPt> getPt(){return pts;}}package xml.digester;public class GeoPt{public double dX;public double dY;public double dZ;public double getdX() {return dX;}public void setdX(double dX) {this.dX = dX;}public double getdY() {return dY;}public void setdY(double dY) {this.dY = dY;}public double getdZ() {return dZ;}public void setdZ(double dZ) {this.dZ = dZ;}}注意: 类成员变量名不可为X、Y、Z,,否则digester报错,原因不明。 可以先定义成员变量,然后用MyEclipse工具“生成setter和getter函数”

 

5 xmlrule文件加载类package xml.digester;import java.io.File;import org.apache.commons.digester3.xmlrules.FromXmlRulesModule;public class myRulesLoader extends FromXmlRulesModule{private String xmlrule;public myRulesLoader(String xmlfile){xmlrule = xmlfile;}loadRules(){loadXMLRules( new File( xmlrule ) );}}6 运行示例main(String[] args){try {// 加载xmlrule文件DigesterLoader loader = newLoader(new myRulesLoader("d:\\drule3.xml"));// 创建Digester实例Digester digester = loader.newDigester();// 解析xml文件FileInfo info = (FileInfo) digester.parse(new File("d:\\9.xml"));// 分析解析结果info.show();}catch (Exception e){e.printStackTrace();}}7 结果示意…Name: Band_1KM_EmissiveFname: G:\YX\HDF_NC_H5\MOD021KM.A2009345.0400.005.2010257180913.hdfDescription: 1KM Emissive Band Numbers for SubsettingNS: 16NL: 1NB: 1FileType: HDF4DataType: FLOATSatellite: nullSensor: nullpicPath:xyz:0.00.00.0xyz:0.00.00.0xyz:0.00.00.0xyz:0.00.00.0…

posted on

天下没有不散的宴席,也许这人间真的只有朦朦胧胧才是真。

apache.commoms.digester3 解析xml文件

相关文章:

你感兴趣的文章:

标签云: