![]() |
SOAP Message wie ein XML auslesen?
Hallo zusammen,
ich habe eine SOPA-Message und will diese entsprechend analysieren.
Code:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><KeyNewRequest xmlns="http://tempuri.org/"><KeyNewRequest><GUID>EF629EB757764FBC9EA41E0611093B32</GUID><RequestNumber>BEST1001</RequestNumber><KeyOwner>AB100</KeyOwner></KeyNewRequest></KeyNewRequest></SOAP-ENV:Body></SOAP-ENV:Envelope> ich möchte auslesen, welcher Service aufgrufen wird: <KeyNewRequest xmlns="http://tempuri.org/"> hier als "KeyNewRequest" und den Wert aus <RequestNumber>BEST1001</RequestNumber> also RequestNumber liefert BEST1001 Ich dachte mit TXMLDocument weiter kommen zu können. Leider aber nein... Wie kann ich an diese oder andere Werte kommen? Vielen Dank Axel |
AW: SOAP Message wie ein XML auslesen?
Hallo,
Zitat:
Zur Not hängst du den fehlenden Vorspann (?) vor dem Öffnen selber dran. |
AW: SOAP Message wie ein XML auslesen?
Wo genau ist das Problem? Mein gerade hingeschmiertes Testprogram funktioniert:
Delphi-Quellcode:
uses
Xml.XMLIntf, Xml.XMLDoc; const SoapMessage = '<?xml version="1.0"?>' + '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' + 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' + '<SOAP-ENV:Body><KeyNewRequest xmlns="http://tempuri.org/">' + '<KeyNewRequest><GUID>EF629EB757764FBC9EA41E0611093B32</GUID>' + '<RequestNumber>BEST1001</RequestNumber><KeyOwner>AB100</KeyOwner>' + '</KeyNewRequest></KeyNewRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>'; procedure TForm1.Button1Click(Sender: TObject); var SoapDoc: IXMLDocument; Node: IXMLNode; NodeList: IXMLNodeList; a: String; begin Memo1.Clear; SoapDoc := LoadXMLData(SoapMessage); Node := SoapDoc.DocumentElement; if Node<>nil then begin NodeList := Node.ChildNodes; if (NodeList<>nil) and (NodeList.Count=1) then begin Node := NodeList[0]; NodeList := Node.ChildNodes; if (NodeList<>nil) and (NodeList.Count=1) then begin Node := NodeList[0]; a := Node.Attributes['xmlns']; Memo1.Lines.Add(Node.LocalName + '=' + a); NodeList := Node.ChildNodes; if (NodeList<>nil) and (NodeList.Count=1) then begin NodeList := NodeList[0].ChildNodes; Node := NodeList.FindNode('RequestNumber'); if Node<>nil then Memo1.Lines.Add(Node.LocalName + '=' + Node.Text); end; end; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz