![]() |
Select anfragen auf XML
Hallo zusammen,
Ich würde gerne so eine Art Select-Abfrage aller Select blub where id == 1; auf eine XML Datei anwenden, sofern das möglich ist. Ich habe bisher bei google und in Foren gesucht und bin dabei auf TClientDataSet und auf XQuery gestoßen. Naja, XQuery finde ich nicht als Komponente in meiner IDE (Delphi 2006), sofern die überhaupt da zu finden ist? Hab dann mal nach der Komponente gesucht, hab aber nur eine für Delphi 6 gefunden und die kostet 50$. Hab mir dann erstmal die Trial davon runtergeladen die aber nicht auf delphi 2006 läuft. Gibt es eine aktuelle Version von Xquery oder ist die vielleicht doch bei mir untergebracht, und ich bin zu blind ;oP Die andere Variante wäre mit TClientDataSet, wenn ich das richtig verstehe. Ist das sinnvoll und gibt es dazu konkrete Tutorials? Außer das mit myBase? Vielleicht gibt es auch noch ne Möglichkeit die ich noch nicht kenne, bin für alles offen ;oP Thx schon mal im Vorraus für einen Tip. greetz Lun |
Re: Select anfragen auf XML
Hoffe ich habe das richtig verstanden
warum läufst du die datei nicht einfach gesuchte Childnote für gesuchte childnote ab und guckst ob der wert den du suchst drinsteht??? wäre doch ne alternative oder? Hoffe das hilft dir Stephie |
Re: Select anfragen auf XML
Mein Problem ist so ähnlich wie deins, nur das zum Beispiel deine Männer alle noch ne ID haben. Sprich Uwe hat die ID 1. Also suche ich in den Childknoten id 1, wenn ich die finde dann gebe ich noch die Beschreibung zu ihm aus. Peter hat id 2 usw. Aber ich will nicht alle ausgeben sondern immer einen bestimmten der die id hat. Ansonsten habe, ich auch alles die gleichen knoten.
aber ich weiß noch nicht wie man so eine Abfrage auf XML bezieht. greetz Lun |
Re: Select anfragen auf XML
Hm würde sagen XML-Datei in eine Datenbankfile einlesen (komplett), zum Beispiel DBase und da kann man mit den Standartdatasetkomponenten arbeiten. Das spart eine menge eigener Programmierarbeit.
Grüße / Martin |
Re: Select anfragen auf XML
ClientDataSets können Daten zwar in XML speichern und daraus laden, aber falls du bereits vorhandene XML Dateien hast, nützen die dir nicht viel. ClientDataSets speichern ihre Daten in festgelegten XML Strukturen, die deine vorhandenen XML Dateien kaum erfüllen dürften. Außerdem wird diese Methode bei großen Datenmengen ziemlich lahm, da die gesamte Datei in den Speicher geladen wird.
Es bleibt dir wahrscheinlich nicht viel anderes übrig, die Datei "von Hand" zu parsen, oder dir über den Delphi Datenbindungs-Experten ne fertige Klassenstruktur anlegen zu lassen. Dann haste zwar immer noch ein bissl Arbeit, aber die macht dafür dann mehr Spaß. |
Re: Select anfragen auf XML
Wie wäre denn
![]()
Code:
Anfrage für Peter:
<kerle>
<kerl name="Uwe" id="1"><description>Der Uwe</description></kerl> <kerl name="Peter" id="2"><description>Der Peter</description></kerl> </kerle>
Delphi-Quellcode:
Anfrage für die Kerle allgemein, die ein id-Attribut haben:
singleNode := xmldoc.selectSingleNode('//kerle/kerl[@id="2"]/description');
if singleNode <> nil then ShowMessage(singleNode.text);
Delphi-Quellcode:
Beispiel basiert auf MS-XML 4.0.
nodes := xmldoc.selectNodes('//kerle/kerl[@id]/description');
if nodes.length > 0 then for i := 0 to nodes.length - 1 do ShowMessage(nodes[i].text); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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