TXMLDocumento X Widestring
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?
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
Curtidas 0
Respostas
Rafael Cunha
19/12/2012
Já tentou recuperar o conteúdo do XML com o comando abaixo e utilizar no método do WebService.
X := XMLDocument1.XML.Text;
GOSTEI 0
Thiago Barbosa
19/12/2012
Eu faço a abertura do XML e utilizo esse comando (XMLDocument1.XML.Text;) mas não envia nenhuma informação.
GOSTEI 0
Rafael Cunha
19/12/2012
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?
GOSTEI 0
Thiago Barbosa
19/12/2012
O método do WebService é Processar(AXML: WideString).
Quando envio as informações XMLDocument.XML.Text não envia nada.
Quando envio as informações XMLDocument.XML.Text não envia nada.
GOSTEI 0
Thiago Barbosa
19/12/2012
O método do WebService é Processar(AXML: WideString).
Quando envio as informações XMLDocument.XML.Text não envia nada.
Quando envio as informações XMLDocument.XML.Text não envia nada.
GOSTEI 0
Rafael Cunha
19/12/2012
Poste o código que está utilizando para ler o XML e enviar.
GOSTEI 0
Thiago Barbosa
19/12/2012
--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.
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.
GOSTEI 0
Rafael Cunha
19/12/2012
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;
GOSTEI 0
Thiago Barbosa
19/12/2012
Valeu pela dica. Consegui enviar a informação.
Abraços.
Abraços.
GOSTEI 0
Rafael Cunha
19/12/2012
Post aqui a sua solução para ficar registrado.
GOSTEI 0
Rafael Cunha
19/12/2012
Post aqui a sua solução para ficar registrado.
GOSTEI 0