簡體   English   中英

如何從Java中的文本中獲取整個XML

[英]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元素。 我該如何實現?

  1. 刪除標題-之前的所有內容

<?xml

要么

<肥皂:

  1. 使用一些庫進行XML文檔解析。 例如, JAXP

如果這些是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.

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