Java:Simple XML序列化(Simple-XML-2.6.6.jar)给出了包含<;SOAP-ENV:Body>&&书信电报;SOAP-ENV:信封>;
我正在使用简单XML序列化(Simple-XML-2.6.6.jar)将XML响应从webservice转换为POJO类。 XML是:Java:Simple XML序列化(Simple-XML-2.6.6.jar)给出了包含<;SOAP-ENV:Body>&&书信电报;SOAP-ENV:信封>;,java,android,web-services,xml-parsing,Java,Android,Web Services,Xml Parsing,我正在使用简单XML序列化(Simple-XML-2.6.6.jar)将XML响应从webservice转换为POJO类。 XML是: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"&g
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<SOAP-ENV:Body>
<return>
<appointments>
<appointment>
<encounterId>211707</encounterId>
<date>2012-10-16</date>
<startTime>00:00:00</startTime>
<ufname>Sam</ufname>
<ulname>Willis</ulname>
<reason>Chest Congestion</reason>
<FacilityId>2837</FacilityId>
<Notes/>
</appointment>
</appointments>
</return>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
现在,如果我从XML中删除
&
,效果会很好。但是当用这些标记解析XML时,我得到的错误是:
Exception in thread "main" org.simpleframework.xml.core.ElementException: Element 'Body' does not have a match in class pojo.Return at line 3
现在,如果我从XML中删除
&
,效果会很好。但是当用这些标记解析XML时,我得到了一个错误
这就是你的问题所在。简单XML尝试解析您提供给它的整个文档。如果你说:
serializer.read(Appointment.class, yourXML)
XML的根是
,后跟一个
,那么它就不起作用了。您需要创建一个或多个类来封装XML中的
节点。否则,简单的XML将变得混乱,并告诉您它没有看到它期望看到的内容。这就是为什么删除这些元素时它会起作用:因为XML现在看起来和它预期的完全一样。在简单XML
中,有没有办法让序列化程序从
节点读取,而忽略
节点…?@hemu:没有简单的方法。但您可能会编写一个转换器或手动忽略它的东西。不过,我建议不要这样做。只需创建两个额外的类。没那么糟。
Exception in thread "main" org.simpleframework.xml.core.ElementException: Element 'Body' does not have a match in class pojo.Return at line 3
serializer.read(Appointment.class, yourXML)