Anzahl bestimmter XML-Knoten herausfinden
-
Hallo und Guten Morgen!
Gibt es für beim Lesen von XML-Knoten eine Methode die die Anzahl eines bestimmten-Knotens zurückgibt.
Bsp. Ich habe einen <HEADER>-Knoten und ich will wissen wie oft der Knoten <M> darin enthalten ist. Im HEADER-Knotne stehen allerdings auch noch andere Knoten, sonst wäre die Methode -Count ja möglich gewesen.
<HEADER> <X>....</X> <Y>....</Y> <M>....</M> <M>....</M> <M>....</M> </HEADER>Ergebnis sollte dann dementsprechend 3 sein!
Ich habe dazu nichts dazu gefunden, aber evtl. gibt es ja doch was! Vielen Dank schon mal! *NOODLE*
-
Davon ausgehend, dass pro Zeile nur ein <M> enthalten sein kann, ist das doch nur ein Dreizeiler:
TStringList* slTemp = new TStringList(); slTemp->LoadFromFile(Dateiname); int iCount = 0; for (int i = 0; i < slTemp->Count; ++i) { if (slTemp->Lines[i].AnsiPos("<M>") > 0) ++iCount; } delete slTemp;
-
du musst schon verraten mit welcher komponente du durchparsed!
Ich schätze mal die gehst mit GetNextNode (allgemein gefasst) vor, dort musst du einfach einen Counter mitlaufen lassen, wenn er ein bestimmtes Element findet.
Oder bei GetNode: so oft aufrufen bis NotFound zurück kommt.