簡體   English   中英

用Java保存.xml文件

[英]Saving a .xml file in Java

我正在使用WebServiceTemplate類,並且將從Web服務接收的XML響應存儲在文件中。 但是.xml文件出於某種原因包含所有<>另存為;&lt;&gt

有什么辦法可以在保存之前將其轉換為正確的.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">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;operationResult version="2.0.1"&gt;
&lt;returnCode&gt;&lt;![CDATA[0]]&gt;&lt;/returnCode&gt;
&lt;resourceDescriptor name="Record1" wsType="reportUnit"  uriString="/xyz" isNew="false"&gt;
    &lt;label&gt;&lt;![RECORD 1]]&gt;&lt;/label&gt;
    &lt;creationDate&gt;1338285680000&lt;/creationDate&gt;
    &lt;resourceProperty name="PROP_RESOURCE_TYPE"&gt;
        &lt;value&gt;&lt;!   

在寫入文件時,將<>&之類的字符序列化,以便以后可以由XML解析器讀取。

您可以嘗試在文本節點上使用CDATA編碼。 在這種情況下,您將在CDATA塊中包含<。

http://en.wikipedia.org/wiki/CDATA

我想到了! :)有執行此操作的庫。 這么簡單

StringEscapeUtils.unescapeXml(xml)

會成功的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM