2016-11-18 46 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