在Java中保存.xml文件
我正在使用WebServiceTemplate类,并将从webservice接收到的XML响应存储在一个文件中。但是由于某种原因,.xml文件包含所有保存为在Java中保存.xml文件,java,spring-ws,Java,Spring Ws,我正在使用WebServiceTemplate类,并将从webservice接收到的XML响应存储在一个文件中。但是由于某种原因,.xml文件包含所有保存为的<和> 在保存之前,有没有办法将其转换为适当的.xml文件 InputStream inputStream = new WebServiceClientImpl().getClass().getResourceAsStream("Request.xml"); StreamSource source
的
<
和>
在保存之前,有没有办法将其转换为适当的.xml
文件
InputStream inputStream = new WebServiceClientImpl().getClass().getResourceAsStream("Request.xml");
StreamSource source = new StreamSource(inputStream2);
StreamResult result = new StreamResult(new File("Response.xml"));
webServiceTemplate.sendSourceAndReceiveToResult(defaultURI,source, result);
request.xml:
<list>
<requestXmlString xs:type="type:string" xmlns:xs="http://www.w3.org/2000/XMLSchema- instance">
<![CDATA[<request operationName="list" locale="en">
<resourceDescriptor name="" wsType="folder" uriString="/" isNew="false">
<label>null</label>
</resourceDescriptor>
</request>]]>
</requestXmlString>
</list>
无效的
]]>
Response.xml
<?xml version="1.0" encoding="UTF-8"?><listResponse xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><listReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?>
<operationResult version="2.0.1">
<returnCode><![CDATA[0]]></returnCode>
<resourceDescriptor name="Record1" wsType="reportUnit" uriString="/xyz" isNew="false">
<label><![RECORD 1]]></label>
<creationDate>1338285680000</creationDate>
<resourceProperty name="PROP_RESOURCE_TYPE">
<value><!
?xml version=“1.0”encoding=“UTF-8”?
操作结果版本=“2.0.1”
返回码![CDATA[0]]/returnCode
resourceDescriptor name=“Record1”wsType=“reportUnit”uriString=“/xyz”isNew=“false”
标签![记录1]]/label
creationDate 1338285680000/creationDate
resourceProperty name=“PROP\u资源\u类型”
价值
在写入文件时,像<>&这样的字符被序列化,以便XML解析器稍后可以读取它们
您可以尝试在文本节点上使用CDATA编码。在这种情况下,您将在CDATA块中使用<
我想出来了!:)有这样的库。这么简单
StringEscapeUtils.unescapeXml(xml)
我会成功的 谢谢。我已经添加了我的代码。问题是我需要解组我得到的XML响应。我正在考虑使用Castor解组器将XML绑定到我的java对象。但它似乎无法识别这些字符&在档案里。我不确定它是否能识别CDATA部分。我将发布我的请求和响应XML,以便您可以查看。@Brian我已经添加了一些代码片段。感谢您以前拥有的是正确的XML。问题是XML包含嵌套的XML作为字符串。在字符串上使用unescapeXml会将其更改为其他内容。