Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/Kotlin中对象的XML解组_Java_Xml_Kotlin_Jaxb_Unmarshalling - Fatal编程技术网

Java/Kotlin中对象的XML解组

Java/Kotlin中对象的XML解组,java,xml,kotlin,jaxb,unmarshalling,Java,Xml,Kotlin,Jaxb,Unmarshalling,我想将一个xml字符串更改为一个对象,但它似乎一直在向我抛出错误,我不知道如何使用@XmlRootElement这些东西 尽管是用kotlin编写的,但只要查看/回复它,JAVA也可以 这里是XML字符串 <xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <appid>

我想将一个xml字符串更改为一个对象,但它似乎一直在向我抛出错误,我不知道如何使用@XmlRootElement这些东西

尽管是用kotlin编写的,但只要查看/回复它,JAVA也可以

这里是XML字符串

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx0b6dc231d20b379f1]]></appid>
<mch_id><![CDATA[1508319851]]></mch_id>
<nonce_str><![CDATA[mqy4nB6xGoyC1QPY]]></nonce_str>
<sign><![CDATA[2D9A3195E196F679D3916C5DC74754B4]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>
<prepay_id><![CDATA[wx2116190646297891sfae86747980208850875]]></prepay_id>
<trade_type><![CDATA[JSAPI]]></trade_type>
</xml>
这是我的代码,“xmlreturn”是xml字符串

这里是错误

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"xml"). Expected elements are <{}wxPayResult>
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:741)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:262)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:257)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:124)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1149)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:574)
javax.xml.bind.UnmarshaleException:意外元素(uri:,local:“xml”)。预期的要素是
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:741)
位于com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:262)
位于com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:257)
位于com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:124)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1149)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.\u startElement(UnmarshallingContext.java:574)

我知道我可能需要在数据类中添加一些东西,但我不知道要添加什么。提前感谢。

您的根元素的名称与您的xml根元素的名称不同,这也是消息提示的。它需要
wxPayResult
,但您给它一个
xml

交付带有
wxPayResult
作为根元素的XML,或者向
XMLRootElement
提供
name
,例如

@XmlRootElement(name = "xml")

您的根元素的名称与xml根元素的名称不同,这也是消息所建议的。它需要
wxPayResult
,但您给它一个
xml

交付带有
wxPayResult
作为根元素的XML,或者向
XMLRootElement
提供
name
,例如

@XmlRootElement(name = "xml")

可能重复的可能重复的可能重复的感谢您的回复,我确实尝试添加(name=“xml”),但它无法获取值,这意味着我在Person对象中获取了null中的所有属性。你知道为什么会发生这种情况吗?是的,每个元素都需要
@xmlement
。注意:如果名称也不同,您还可以提供
名称
-属性。这是我得到的wat上的图片,您介意/知道我将如何@xmlement执行此操作吗?示例:
@xmlement var return\u code:String?=空
。您可能需要切换到
var
。刚刚测试过
val
。您不需要
var
val
也可以。。。因此,这只取决于您是否要更改变量;-)感谢您的回复,我确实尝试添加了(name=“xml”),但它无法获取值,这意味着我在Person对象中获取了null中的所有属性。你知道为什么会发生这种情况吗?是的,每个元素都需要
@xmlement
。注意:如果名称也不同,您还可以提供
名称
-属性。这是我得到的wat上的图片,您介意/知道我将如何@xmlement执行此操作吗?示例:
@xmlement var return\u code:String?=空
。您可能需要切换到
var
。刚刚测试过
val
。您不需要
var
val
也可以。。。因此,这只取决于您是否要更改变量;-)
@XmlRootElement(name = "xml")