[英]How to fetch entire XML from text in Java
我有兩個不同的字符串例如:
1)
HTTP/1.1 200 OK
Content-Length: 144
content-type: application/xml
Date: Wed, 11 Nov 2015 12:57:07 GMT
Server: Jetty(7.5.4.v20111024)
Note: Header order may not reflect actual transmitted stream.
<?xml version="1.0" encoding="UTF-8"?>
<Log>
<Code>0</Code>
<SensitiveData2>Data Is Here</SensitiveData2>
</Log>
2)
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Content-Length: 1099
Server: Jetty(7.5.4.v20111024)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Response_Phase_IIResponse xmlns="http://tempuri.org/">
<Response_Phase_IIResult>
<Address_Parameters_Phase_II>
<Setup_In_CRM>NO</Setup_In_CRM>
<CRM_Profile_ID>0</CRM_Profile_ID>
</Address_Parameters_Phase_II>
</Response_Phase_IIResult>
</Response_Phase_IIResponse>
</soap:Body>
</soap:Envelope>
我需要解析這些字符串,並從根節點獲取沒有任何標頭的整個XML元素。 我該如何實現?
如果這些是httpResponse對象,則無需修改它們即可讀取它們。 標頭和正文分別訪問。
這是一個示例(可能是不完美的代碼,但是可以用):
SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection();
URL endpoint = null;
try {
endpoint =
new URL(new URL(url), path, new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL url) throws IOException {
URL target = new URL(url.toString());
URLConnection connection = target.openConnection();
// Connection settings
connection.setConnectTimeout(10000); // 10 sec
connection.setReadTimeout(30000); // 1 min
return(connection);
}
});
} catch (Exception e) {
throw new SOAPException("Connection unavailable");
}
SOAPMessage response = null;
try {
response = connection.call(message, endpoint);
} catch (SOAPException e) {
connection.close();
throw new SOAPException(e);
}
try {
SOAPBody responseBody = response.getSOAPBody();
if(responseBody.getFault()!=null){
throw new SOAPException("Message unreadable");
}
} catch (SOAPException e) {
connection.close();
throw new SOAPException(e);
}
connection.close();
此語句“ SOAPBody responseBody = response.getSOAPBody();” 得到肥皂的身體。
如果要完全按照復制的方式處理字符串,則需要使用RegX處置不是XML主體的位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.