栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将Soap XML响应转换为对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将Soap XML响应转换为对象

您可以使用此代码检索POJO,还可以将@XmlRootElement作为标头添加到POJO。

(我没有测试下面的代码)

XMLInputFactory xif = XMLInputFactory.newFactory();        XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml"));        xsr.nextTag(); // Advance to Envelope tag        xsr.nextTag(); // Advance to Body tag        xsr.nextTag();        xsr.nextTag();        Transformer transformer = TransformerFactory.newInstance().newTransformer();        StringWriter stringWriter = new StringWriter();        transformer.transform(new StAXSource(xsr), new StreamResult(stringWriter));        StringReader sr = new StringReader(stringWriter.toString());        JAXBContext jaxbContext = JAXBContext.newInstance(LoginResult.class);        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();        LoginResult loginResult = (LoginResult) unmarshaller.unmarshal(sr);

编辑:

我为您找到了解决方案:

    @XmlRootElement(name = "LoginResult", namespace = "http://test.org/ADMail_Service")@XmlAccessorType(XmlAccessType.FIELD)public class LoginResult {    @XmlElement(name = "ErrorMessage", namespace = "http://test.org/ADMail_Service")    private String errorMessage;    @XmlElement(name = "Status", namespace = "http://test.org/ADMail_Service")    private String status;    public String getErrorMessage() {        return errorMessage;    }    public void setErrorMessage(String errorMessage) {        this.errorMessage = errorMessage;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }}public static void main(String[] args) {        try { XMLInputFactory xif = XMLInputFactory.newFactory(); XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml")); xsr.nextTag(); // Advance to Envelope tag xsr.nextTag(); // Advance to Body tag xsr.nextTag(); xsr.nextTag(); JAXBContext jc = JAXBContext.newInstance(LoginResult.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); JAXBElement<LoginResult> je = unmarshaller.unmarshal(xsr, LoginResult.class); System.out.println(je.getName()); System.out.println(je.getValue()); System.out.println(je.getValue().getErrorMessage());        } catch (XMLStreamException e) { e.printStackTrace();        } catch (JAXBException e) { e.printStackTrace();        } catch (FileNotFoundException e) { e.printStackTrace();        }    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号