关于使用Digester解析XML遇到的坑

  • 最近看了IBM关于解析XML的文章
    由于之前只使用过DOM和SAX,对Digester产生兴趣,使用Digester要先倒入Digester的包,而DOM和SAX JDK有直接提供的方法。


    org.apache.commons
    commons-digester3
    3.2

文章中提到Digester适用场景在将XML直接转为JavaBean。我再xml中使用的标签都是大写字母比如 (PS:单纯为了方便),接着使用的类的属性和标签相对应也是大写。

Digester digester=new Digester();
digester.addObjectCreate("Q",className);
digester.addBeanPropertySetter("Q/L");
Q q=(Q)digester.parse(file);

run的时候一直报错# java.lang.NoSuchMethodException: Bean has no property named
找了很久,最后在StackOverFlow上找到大神的回答才理解。

关于使用Digester解析XML遇到的坑_第1张图片
image.png

他的大概意思是根据java的设计原则,java属性值的开头必须为小写,而属性值和XML的标签是直接对应的,所以XML的标签也必须为小写。

你可能感兴趣的:(关于使用Digester解析XML遇到的坑)