如何从xml字符串检索属性并将其转换为java对象?

时间:2019-02-08 04:08:22

标签: java xml

我调用另一个服务的方法,并且收到了这种xml字符串:

<result state="0" code="04998121129111115327" transID="4444"
        transTime="2012-11-29 11:11:14" regCode="040020275"
        refCode="DZ053158110" meterNum="02003561710"
        customerName="Jorsh Bush" tariffCode="02"
        buyTimes="97" calcQty="37.4" vendQty="37.4"
        vendAMT="9.7" supplyAMT="0.00" arrearAMT="0.00"
        feeAMT="0" AMT="9.7" VAT="0" stampTax="0.00"
        netAMT="9.7" commAMT="0.3" token="2761 9986 4217 4379 4463"
        invoice="0000000544" verifyCode="6777e5da18c133d725c7dcd4153f5ca4" 
        checkCode="">
    <power>
        <item id="1" kwh="0" amt="0" price="0.1500"/>
        <item id="2" kwh="37.4" amt="9.7" price="0.2600"/>
    </power>
    <fee/>
    <arrear/>
</result>

在我看来,这种xml类型存在问题,因为我需要的数据在属性中(而不是在标签中)。 现在,将这种东西放入我的java对象的最佳方法是什么?

  

我使用xml模式来生成响应类,我尝试将其生成   转换xml字符串。

1 个答案:

答案 0 :(得分:0)

参考:https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/Unmarshaller.html

就像第一个人说的那样,使用JAXB提供的Unmarshaller

Should look something like this:
     JAXBContext jc = JAXBContext.newInstance( "com.acme.foo");   
     Unmarshaller u = jc.createUnmarshaller();   
     Object o = u.unmarshal(new File( "nosferatu.xml" ));