美文网首页
关于使用Digester解析XML遇到的坑

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

作者: AndyWei123 | 来源:发表于2018-08-24 11:29 被阅读0次
    • 最近看了IBM关于解析XML的文章
      由于之前只使用过DOM和SAX,对Digester产生兴趣,使用Digester要先倒入Digester的包,而DOM和SAX JDK有直接提供的方法。
    <!-- 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的标签也必须为小写。

    相关文章

      网友评论

          本文标题:关于使用Digester解析XML遇到的坑

          本文链接:https://www.haomeiwen.com/subject/njrbiftx.html