Fórum TXMLDocumento X Widestring #431296

19/12/2012

0

Prezados,

Criei o arquivo XML com o componente TXMLDocument.

Sendo que preciso consumir o WebService com esse XML, mas a assinatura é WideString.

Alguém sabe como enviar o XML cuja assinatura é WideString?
Thiago Barbosa

Thiago Barbosa

Responder

Posts

19/12/2012

Rafael Cunha

Já tentou recuperar o conteúdo do XML com o comando abaixo e utilizar no método do WebService.

X := XMLDocument1.XML.Text;
Responder

Gostei + 0

19/12/2012

Thiago Barbosa

Eu faço a abertura do XML e utilizo esse comando (XMLDocument1.XML.Text;) mas não envia nenhuma informação.
Responder

Gostei + 0

19/12/2012

Rafael Cunha

Eu faço a abertura do XML e utilizo esse comando (XMLDocument1.XML.Text;) mas não envia nenhuma informação.


Se você utilizar esse comando para mostrar o conteúdo do XML em um ShowMessage alguma coisa e mostrada?
Responder

Gostei + 0

19/12/2012

Thiago Barbosa

O método do WebService é Processar(AXML: WideString).

Quando envio as informações XMLDocument.XML.Text não envia nada.
Responder

Gostei + 0

19/12/2012

Thiago Barbosa

O método do WebService é Processar(AXML: WideString).

Quando envio as informações XMLDocument.XML.Text não envia nada.
Responder

Gostei + 0

19/12/2012

Rafael Cunha

Poste o código que está utilizando para ler o XML e enviar.
Responder

Gostei + 0

19/12/2012

Thiago Barbosa

--Criar XML
var
XMLDoc : TXmlDocument;
Root: IXmlNode;

begin
XMLDoc := TXmlDocument.Create(nil);
XMLDoc.Active := False;
XMLDoc.XML.Clear;
XMLDoc.Options := [doNodeAutoIndent];
XMLDoc.Active := True;

XMLDoc.Version := '1.0';
XMLDoc.Encoding := 'ISO-8859-1';
Root := XMLDoc.AddChild('Mensagens');
with Root.AddChild('Cabecalho') do
begin
AddChild('mensagemID').NodeValue := '7452314';
AddChild('versaoXML').NodeValue := AXML.Version;
AddChild('identificacaoCliente').NodeValue := '8998788';
AddChild('servico').NodeValue := 'NOTA_ESTOQUE';
AddChild('dataHora').NodeValue := vDataHoraArquivo;
AddChild('empresaOrigem').NodeValue := '1';
AddChild('sistemaOrigem').NodeValue := '1';
AddChild('empresaDestino').NodeValue := '1';
AddChild('sistemaDestino').NodeValue := '1';
AddChild('usuario').NodeValue := 'USER';
AddChild('senha').NodeValue := 'PASSWORD';
end;
end;

--Enviando o XML
O método do WebService é procedure Processar(AXML: WideString);

Quando envio Processar(XMLDoc.XML.Text) a informação do XML não vai.
Responder

Gostei + 0

19/12/2012

Rafael Cunha

Estranho que se fizer da seguinte maneira ele mostra o conteúdo do XML normalmente. Isso que dizer que a informação do XML foi recuperada corretamente.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  XMLDoc: TXmlDocument;
  Root: IXmlNode;
begin
  XMLDoc := TXmlDocument.Create(nil);
  XMLDoc.Active := False;
  XMLDoc.XML.Clear;
  XMLDoc.Options := [doNodeAutoIndent];
  XMLDoc.Active := True;

  XMLDoc.Version := '1.0';
  XMLDoc.Encoding := 'ISO-8859-1';
  Root := XMLDoc.AddChild('Mensagens');
  with Root.AddChild('Cabecalho') do
  begin
    AddChild('mensagemID').NodeValue := '7452314';
    AddChild('versaoXML').NodeValue := 1;
    AddChild('identificacaoCliente').NodeValue := '8998788';
    AddChild('servico').NodeValue := 'NOTA_ESTOQUE';
    AddChild('dataHora').NodeValue := Now;
    AddChild('empresaOrigem').NodeValue := '1';
    AddChild('sistemaOrigem').NodeValue := '1';
    AddChild('empresaDestino').NodeValue := '1';
    AddChild('sistemaDestino').NodeValue := '1';
    AddChild('usuario').NodeValue := 'USER';
    AddChild('senha').NodeValue := 'PASSWORD';
  end;

  Processar(XMLDoc.XML.Text);
end;

procedure TForm1.Processar(AXML: WideString);
begin
  ShowMessage(AXML);
end;
Responder

Gostei + 0

19/12/2012

Thiago Barbosa

Valeu pela dica. Consegui enviar a informação.

Abraços.
Responder

Gostei + 0

19/12/2012

Rafael Cunha

Post aqui a sua solução para ficar registrado.
Responder

Gostei + 0

19/12/2012

Rafael Cunha

Post aqui a sua solução para ficar registrado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar