Delphi MSXML

Hi,
I am parsing XML documents using MSXML_TLB. For example if the xml is

 <message>
  <messtime>19:14</messtime>
  <messdate>2006-04-21</messdate>
  <status code="63">On route to delivery branch</status>
 </message>

i can get "On route to delivery branch" using
  oNodeList := oXMLDoc.selectNodes('//message');
  listbox1.Items.Add(oNodeList[0].text);

But i don't know how to get the "code" value which is 63 for this example. if I use it like this
  oNodeList := oXMLDoc.selectNodes('//status );
  listbox1.Items.Add(oNodeList[0].text);

it returns "On route to delivery branch"

thanks in advance
bilgehanyildirimAsked:
Who is Participating?
 
nou68Commented:
Try this
procedure TForm1.Button1Click(Sender: TObject);
var

  FDOM      : IXMLDOMDocument;
   amsg: string;
  FRootEL        : IXMLDOMElement;
  FEL   : IXMLDOMNode;
  AnyElement: string;
  aVariant: variant;

begin
  amsg := memo1.text;
  FDOM := CoDOMDocument.Create;
  if not FDOM.loadXML(aMsg) then
   raise Exception.Create('Invalid XML message');

  AnyElement := 'status';
   FrootEL := FDOM.DocumentElement;
   FEl   := FrootEL.selectSingleNode('./' + AnyElement);

   if FEl <> nil  then
   begin
     aVariant :=  (FEl As IXMLDOMElement).getAttribute('code');

     if not varisNull(aVariant) then
       ShowMessage(aVariant);

   end;

end;
0
 
bilgehanyildirimAuthor Commented:
that's it!! Thank you very much.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.