java - 使用JAXB解析XML问题
迷茫
迷茫 2017-04-17 17:58:05
[Java讨论组]

加入@XmlElement(name="extendInfo")不报错了,但xml转为对象时,keyvalue设值不进去,对象转xml没问题。


解析为xml可以,xml转为对象报错。报错截图不方便贴出来
unmarshaller.unmarshal()空指针异常,报错不友好,可能贴出来也效果不大。

    /* 总的xml类 */
    public class Document {
        //... 其它字段及其get,set方法
        
        private List<ExtendInfo> extendInfo;    //只要加上这个解析XML为对象就报错,但对象解析为xml没问题
        
        @XmlElementWrapper(name="extendInfos")
        @XmlElement(name="extendInfo")    //加上这个就不报错了
        public List<ExtendInfo> getExtendInfo() {
            return extendInfo;
        }
        public void setExtendInfo(List<ExtendInfo> extendInfo) {
            this.extendInfo = extendInfo;
        }
    }


    @XmlType(propOrder={"key", "value"})
    public class ExtendInfo {
        
        private String key;
        private String value;
        
        @XmlAttribute
        public String getKey() {
            return key;
        }
        public void setKey(String key) {
            this.key = key;
        }
        @XmlAttribute
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }
    
    //XML:
    <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
    <document>
        <!-- 其它的标签 -->
        <extendInfos>
            <extendInfo key="k1" value="v1"/>
            <extendInfo key="k2" value="v2"/>
        </extendInfos>
    </document>
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
大家讲道理

同样的代码,朋友去试了下是OK的。
于是找到了之前测试dom4j加入了如下的JAR包,是RC版本,经试验有BUG,换个2.0.0版本就没影响了。

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.0.0-RC1</version>
</dependency>

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.0.0</version>
</dependency>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号