Guten Tag, ich hatte heute meinen ersten Kontakt mit XML, zugrunde liegt eine einfache Datei wie:
<PRE>
<Jahr>
<Firma>
<Nummer>1</Nummer>
<Name>Maier</Name>
<Adresse>
<Strasse>Holzweg</Strasse>
<Ort>Bretten</Ort>
<PLZ>75015</PLZ>
</Adresse>
</Firma>
<Firma>
<Nummer>2</Nummer>
<Name>Schulz</Name>
<Adresse>
<Strasse>Rückweg</Strasse>
<Ort>Karlsruhe</Ort>
<PLZ>76133</PLZ>
</Adresse>
</Firma>
<Kunde>Müller</Kunde>
</Jahr>
</PRE>
Ich möchte nun die Anzahl der Knoten "Firma" erhalten und habe mit Hilfe der Online-Hilfe diesen Code geschrieben:
<PRE>
procedure TForm1.Button1Click(Sender: TObject);
var
LXMLDoc : TXMLDocument;
LNode : IXMLNode;
LNodeList : IXMLNodeList;
LiCount : Integer;
begin
LNodeList := nil;
try
try
LXMLDoc := TXMLDocument.Create(self);
LXMLDoc.FileName := 'C:\Eigenes\test.xml';
LXMLDoc.Active := True;
LNodeList := LXMLDoc.documentElement.GetChildNodes;
LNode := LNodeList.FindNode('Firma');
LiCount := LNode.Collection.Count;
</PRE>
Hier gibt es nun eine Zugriffsverletzung und .Collection ist in dem Moment "nil". Aus der Online-Hilfe zu Collection werde ich nicht ganz schlau, muss ich zwischen den letzten beiden Code-Zeilen noch was einfügen, oder wie wird Collection gefüllt ?
Desweiteren ist mir nicht klar, wie ich mich innerhalb einer bestimmten "Knoten-Ebene" nur durch die speziellen Knoten (hier: Firma) bewege, dazu müsste ich doch eine Auswahlmenge haben, in der sich diese speziellen Knoten mit ihren Unterknoten befinden (ähnlich einer Query bei Datenbankzugriffen) und die ich mittels Schleife durchlaufen kann, wäre das dann die Collection, aber wie bewege ich mich in der ?
Vielen Dank im Voraus für Ihre Hilfe
Michael
<PRE>
<Jahr>
<Firma>
<Nummer>1</Nummer>
<Name>Maier</Name>
<Adresse>
<Strasse>Holzweg</Strasse>
<Ort>Bretten</Ort>
<PLZ>75015</PLZ>
</Adresse>
</Firma>
<Firma>
<Nummer>2</Nummer>
<Name>Schulz</Name>
<Adresse>
<Strasse>Rückweg</Strasse>
<Ort>Karlsruhe</Ort>
<PLZ>76133</PLZ>
</Adresse>
</Firma>
<Kunde>Müller</Kunde>
</Jahr>
</PRE>
Ich möchte nun die Anzahl der Knoten "Firma" erhalten und habe mit Hilfe der Online-Hilfe diesen Code geschrieben:
<PRE>
procedure TForm1.Button1Click(Sender: TObject);
var
LXMLDoc : TXMLDocument;
LNode : IXMLNode;
LNodeList : IXMLNodeList;
LiCount : Integer;
begin
LNodeList := nil;
try
try
LXMLDoc := TXMLDocument.Create(self);
LXMLDoc.FileName := 'C:\Eigenes\test.xml';
LXMLDoc.Active := True;
LNodeList := LXMLDoc.documentElement.GetChildNodes;
LNode := LNodeList.FindNode('Firma');
LiCount := LNode.Collection.Count;
</PRE>
Hier gibt es nun eine Zugriffsverletzung und .Collection ist in dem Moment "nil". Aus der Online-Hilfe zu Collection werde ich nicht ganz schlau, muss ich zwischen den letzten beiden Code-Zeilen noch was einfügen, oder wie wird Collection gefüllt ?
Desweiteren ist mir nicht klar, wie ich mich innerhalb einer bestimmten "Knoten-Ebene" nur durch die speziellen Knoten (hier: Firma) bewege, dazu müsste ich doch eine Auswahlmenge haben, in der sich diese speziellen Knoten mit ihren Unterknoten befinden (ähnlich einer Query bei Datenbankzugriffen) und die ich mittels Schleife durchlaufen kann, wäre das dann die Collection, aber wie bewege ich mich in der ?
Vielen Dank im Voraus für Ihre Hilfe
Michael
Comment