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

2018-08-24  本文已影响0人  AndyWei123
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-digester3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-digester3</artifactId>
    <version>3.2</version>
</dependency>

文章中提到Digester适用场景在将XML直接转为JavaBean。我再xml中使用的标签都是大写字母比如 <L></L> (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上找到大神的回答才理解。

image.png

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

上一篇下一篇

猜你喜欢

热点阅读