Digester解析XML字段赋值

XML文件:

<?xml version="1.0" encoding="GBK" standalone="no" ?>
<ROOT>
    <RETURN_CODE type="long">0</RETURN_CODE>
    <RETURN_MSG type="string">ok!</RETURN_MSG>
    <USER_MSG type="string">ok!</USER_MSG>
    <DETAIL_MSG type="string">OK!</DETAIL_MSG>
    <PROMPT_MSG type="string"/>
    <OUT_DATA>
        <DATA>
            <LIST>
                <LIST_INFO>
                    <EFF_DATE type="string">20190222135846</EFF_DATE>
                    <EXP_DATE type="string">20991231235959</EXP_DATE>
                    <MAX_ORDER_NUM type="int">10</MAX_ORDER_NUM>
                    <USED_ORDER_NUM type="int">0</USED_ORDER_NUM>
                    <LIMIT_INFO>
                        <LIMIT_FLAG type="string">X</LIMIT_FLAG>
                        <EFF_DATE type="string">20190222135846</EFF_DATE>
                        <EXP_DATE type="string">20991231235959</EXP_DATE>
                        <NOTES type="string">xxxxx</NOTES>
                        <LIST/>
                        <RETURN_CODE type="string">403019589</RETURN_CODE>
                    </LIMIT_INFO>
                </LIST_INFO>
            </LIST>
        </DATA>
    </OUT_DATA>
</ROOT>

上面的XML中,LIST_INFO节点下存在两种属性:属性值是基本类型,比如EFF_DATE,EXP_DATE等;属性值是另一个节点,比如LIMIT_INFO。解析规则如下:

//基本数据类型:模式,字段名
digester.addBeanPropertySetter("ROOT/OUT_DATA/DATA/LIST/LIST_INFO/EFF_DATE", "effDate");
//引用数据类型:模式,相应setter方法
digester.addSetNext("ROOT/OUT_DATA/DATA/LIST/LIST_INFO/LIMIT_INFO", "setLimitInfo");
posted @ 2019-03-02 20:59  Ezi0  阅读(286)  评论(0编辑  收藏  举报