这个Web服务是否返回了错误的XML?

时间:2016-11-18 16:48:33

标签: xml wcf curl

我正在尝试解决一个问题,即Web服务返回2个XML开始标记。

我想知道这是否正常,或者他们是否必须解决它:

  

卷曲   http://url.com/C.asmx/ExecuteFileTransactionSL   -d pos =“0000”-d fileContent =“$(cat”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>

1 个答案:

答案 0 :(得分:2)

实际上,虽然可怕,但是包含在string元素中的转义XML字符串格式正确。

但是,除了文档的第一个位置之外,您还有一个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来设置Web服务的HTTP标头:Curl command line for consuming webServices?