gpt4 book ai didi

java - 如何使用 jaxb 将 xml 字符串解码为 java 对象

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:28 24 4
gpt4 key购买 nike

我需要使用休息模板发送请求。在发送之前,我需要在发送请求时将对象编码为 xml。我收到了请求的响应,但采用 XML 格式。然后我需要将响应 xml 转换为对象,以便将结果显示到界面上。

下面是我发送请求的 Controller

 @RequestMapping("/searchSummon")
public String Search(Model model)
{

model.addAttribute("jaxbExample", new JAXBExample());
model.addAttribute("pdxiRes", new PDXIRes());

JAXBExample jaxbExample = new JAXBExample();
String create_xml = jaxbExample.CreateXML();

System.out.println(create_xml);

RestTemplate restTemplate = new RestTemplate();
String a = restTemplate.postForObject("http://192.168.80.30/summon-
V2/example", "<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE PDXIReq
SYSTEM 'summon.dtd'>" + create_xml,String.class);

System.out.println(a);

return "searchSummon";
}

我如何解码“a”来反对?响应类PDXIR header 要求细节状态

响应的 xml('a')

 <?xml version="1.0" encoding="utf-8"?>
<PDXIRes>
<header>
<sp_code>abc017637m</sp_code>
</header>
<request id="1sq1216272728732">
<id_no>683642435</id_no>
<name>SALLY</name>
<max_index>1024</max_index>
<total_summons>2</total_summons>
<summons_detail>
<row num="1">
<summons_id>1810000200002AQ639332</summons_id>
<vehicle>NN162</vehicle>

</row>
<row num="2">
<summons_id>1810000200002AM947772</summons_id>
<vehicle>NN162</vehicle
</row>
</summons_detail>
<status>
<status_code>01</status_code>
<status_msg>Successful</status_msg>
</status>
</request>
</PDXIRes>

最佳答案

您可以使用 Unmarshaller 来做到这一点。

JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

StringReader reader = new StringReader("xml string here");
Person person = (Person) unmarshaller.unmarshal(reader);

在这里找到:Use JAXB to create Object from XML String

关于java - 如何使用 jaxb 将 xml 字符串解码为 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45409812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com