Hallo,
Ik heb het artikel van Mark van Renswoude over het het inlezen van een XML document gelezen. Wat ik alleen mis is hoe ik een attribute van een node kan uitlezen. Ik het XML document van Mark als volgt aangepast:
Code:
<?xml version="1.0"?>
<adresboek>
<adres id="1">
<naam>Mark van Renswoude</naam>
<straat>Zoujewelwillenweten 24</straat>
<plaats>Schiedam</plaats>
<email>mark@x2software.net</email>
</adres>
<adres id="2">
<naam>Jan de Vries</naam>
<straat></straat>
<plaats>Groningen</plaats>
<email>jan@devries.nl</email>
</adres>
</adresboek>
En wil nu de waarde van het id attribute ook weergeven. De code die ik hiervoor denk nodig te hebben is:
Code:
procedure TForm1.FormCreate(Sender: TObject);
var
xmlDoc: TDomDocument;
xmlRoot: TDomElement;
xmlAdres: TDomElement;
xmlAdresItem: TDomElement;
i: integer;
begin
xmlDoc := xmlParser.fileToDom('C:\adres.xml');
try
xmlRoot := xmlDoc.documentElement;
xmlAdres := xmlRoot.getFirstChildElement('adres');
while Assigned(xmlAdres) do begin
xmlAdresItem := xmlAdres.findFirstChildElement();
txtAddressen.Lines.Add('id = ' + xmlAdresItem.GetAttributeNormalizedValue('id'));
while Assigned(xmlAdresItem) do begin
txtAddressen.Lines.Add(xmlAdresItem.NodeName + ' = ' + xmlAdresItem.textContent);
xmlAdresItem := xmlAdresItem.findNextSiblingElement();
end;
txtAddressen.Lines.Add('--------');
xmlAdres := xmlAdres.getNextSiblingElement('adres');
end;
finally
xmlDOM.Free;
end;
end;
Maar dit werkt helaas niet. De waarde van het id attribute wordt niet zichtbaar. Wie kan mij vertellen wat ik fout doe.
Alvast bedankt!
Groeten, Ben
Bookmarks