2016-11-18 47 views
1

我試圖解決一個問題,其中一個Web服務返回2個XML開始標記。此Web服務是否返回不良形式的XML?

我想知道這是正常的,或者他們必須解決這個問題:

捲曲 http://url.com/C.asmx/ExecuteFileTransactionSL -d POS = 「0000」 -d fileContent = 「$(貓」 02I - IDA。 XML 「)」

XML文件:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> 
<Mensaje> 
    <EncabezadoMensaje> 
     <VersionMsj>ACT20</VersionMsj> 
     <TipoMsj>OL</TipoMsj> 
     <TipoTransaccion>02I</TipoTransaccion> 
     <InicioTrx> 
      <FechaTrx>20160704</FechaTrx> 
      <HoraTrx>104600</HoraTrx> 
     </InicioTrx> 
     <Terminal> 
      <TipoTerminal>PC</TipoTerminal> 
      <NumeroTerminal>60000070</NumeroTerminal> 
     </Terminal> 
     <Financiador> 
      <CodigoFinanciador>OSDE</CodigoFinanciador> 
     </Financiador> 
     <Prestador> 
      <CuitPrestador>30708402911</CuitPrestador> 
      <RazonSocial>Sanatorio Prueba</RazonSocial> 
     </Prestador> 
    </EncabezadoMensaje> 
    <EncabezadoAtencion> 
     <Credencial> 
      <NumeroCredencial>60671956201</NumeroCredencial> 
      <ModoIngreso>M</ModoIngreso> 
      <CodigoSeguridad>891</CodigoSeguridad> 
     </Credencial> 
    </EncabezadoAtencion> 
</Mensaje> 

當我想解析響應,我得到

XML聲明只允許在文檔

這開始是的回覆:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://tempuri.org/">&lt;?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?&gt 
; 
&lt;Mensaje&gt; 
    &lt;EncabezadoMensaje&gt; 
    &lt;VersionMsj&gt;ACT20&lt;/VersionMsj&gt; 
    &lt;TipoMsj&gt;OL&lt;/TipoMsj&gt; 
    &lt;TipoTransaccion&gt;02A&lt;/TipoTransaccion&gt; 
    &lt;IdMsj&gt;1095489&lt;/IdMsj&gt; 
    &lt;InicioTrx&gt; 
     &lt;FechaTrx&gt;20160704&lt;/FechaTrx&gt; 
     &lt;HoraTrx&gt;070728&lt;/HoraTrx&gt; 
    &lt;/InicioTrx&gt; 
    &lt;Terminal&gt; 
     &lt;TipoTerminal&gt;PC&lt;/TipoTerminal&gt; 
     &lt;NumeroTerminal&gt;60000070&lt;/NumeroTerminal&gt; 
    &lt;/Terminal&gt; 
    &lt;Financiador&gt; 
     &lt;CodigoFinanciador&gt;OSDE&lt;/CodigoFinanciador&gt; 
     &lt;SystemTrace&gt;368878 &lt;/SystemTrace&gt; 
    &lt;/Financiador&gt; 
    &lt;Prestador&gt; 
     &lt;CuitPrestador&gt;30708402911&lt;/CuitPrestador&gt; 
     &lt;RazonSocial&gt;Sanatorio Prueba&lt;/RazonSocial&gt; 
    &lt;/Prestador&gt; 
    &lt;GeneradorRespuesta&gt;98&lt;/GeneradorRespuesta&gt; 
    &lt;Rta&gt; 
     &lt;CodRtaGeneral&gt;00&lt;/CodRtaGeneral&gt; 
     &lt;DescripcionRtaGeneral&gt;OK, PRESTACION RE- GISTRADA   &lt;/DescripcionRtaGeneral 
&gt; 
     &lt;MensajeDisplay&gt;OK, PRESTACION RE- GISTRADA   &lt;/MensajeDisplay&gt; 
     &lt;MensajePrinter&gt;OK, PREST.REGISTRADAP.2 210  GRAVADO         
     &lt;/MensajePrinter&gt; 
    &lt;/Rta&gt; 
    &lt;NroReferencia&gt;368878 &lt;/NroReferencia&gt; 
    &lt;/EncabezadoMensaje&gt; 
    &lt;EncabezadoAtencion&gt; 
    &lt;Credencial&gt; 
     &lt;NumeroCredencial&gt;61510837601   &lt;/NumeroCredencial&gt; 
     &lt;VersionCredencial&gt;00&lt;/VersionCredencial&gt; 
     &lt;ModoIngreso&gt;M&lt;/ModoIngreso&gt; 
     &lt;CodigoSeguridad&gt;891&lt;/CodigoSeguridad&gt; 
     &lt;PlanCredencial&gt;2 210&lt;/PlanCredencial&gt; 
     &lt;CondicionIVA&gt;G&lt;/CondicionIVA&gt; 
    &lt;/Credencial&gt; 
    &lt;Preautorizacion&gt; 
     &lt;CodigoPreautorizacion&gt;000000&lt;/CodigoPreautorizacion&gt; 
    &lt;/Preautorizacion&gt; 
    &lt;RtaAdicional&gt; 
     &lt;CodigoRtaAdicional&gt;00&lt;/CodigoRtaAdicional&gt; 
    &lt;/RtaAdicional&gt; 
    &lt;Beneficiario&gt; 
     &lt;NombreBeneficiario&gt;FRAGATI MARTIN ARIEL   &lt;/NombreBeneficiario&gt; 
     &lt;Sexo&gt;M&lt;/Sexo&gt; 
     &lt;FechaNacimiento&gt;19760412&lt;/FechaNacimiento&gt; 
    &lt;/Beneficiario&gt; 
    &lt;/EncabezadoAtencion&gt; 
    &lt;DetalleProcedimientos&gt; 
    &lt;CodPrestacion&gt;420101&lt;/CodPrestacion&gt; 
    &lt;TipoPrestacion&gt;1&lt;/TipoPrestacion&gt; 
    &lt;ArancelPrestacion&gt;0&lt;/ArancelPrestacion&gt; 
    &lt;CantidadAprobada&gt;01&lt;/CantidadAprobada&gt; 
    &lt;CantidadSolicitada&gt;01&lt;/CantidadSolicitada&gt; 
    &lt;DescripcionPrestacion&gt;CONSULTA EN CONSULTORIO&lt;/DescripcionPrestacion&gt; 
    &lt;/DetalleProcedimientos&gt; 
&lt;/Mensaje&gt;</string> 

回答

2

正因爲如此,雖然可怕,你逃脫XML字符串包裹在string元素良好的。

但是,除了在文檔的第一個位置以外,您還有一個XML聲明(<?xml...?>)。可能最多隻有一個XML聲明,並且它可能只出現在XML文檔的最頂部。 (請參閱Are multiple XML declarations in a document well-formed XML?

您沒有向我們展示足夠的信息,無法找到您的問題。例如,可能是工具鏈中的某個步驟正在消除&lt;?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?&gt。這可能是因爲您有兩個XML文檔,每個文檔都有自己的XML聲明組合在一起。我們無法確切地告知您發佈的內容,但這是要查找的內容。

更新:

說明,對與逃脫的XML響應的服務可能會誤解你的要求。有一些想法可以通過curl來設置HTTP服務的HTTP頭:Curl command line for consuming webServices?

+0

謝謝,它不是我的網絡服務,它來自提供商,我正在努力解決它。 – JorgeeFG