Thema: Delphi suche in xml

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: suche in xml

  Alt 23. Mär 2005, 09:45
Es geht nicht um die Frage der Wahrscheinlichkeit, sondern es geht um die Eingabe des Anwenders. Ich kann entweder Thomas eintippen, oder aber thomas. Ich kann auch aus Versehen auf die Shift-Taste kommen, so dass im Eingabefeld dann ThoMAs steht. Oder komplett in Großbuchstaben.

@mav: Sag mal, suchst du nach Knotennamen? Ich wundere mich, weil sich "name"
Code:
/*/*[contains([b]name[/b],"'+LabeledEdit1.Text+'")]
doch nicht auf den Inhalt sondern auf den Namen des Knotens selbst bezieht. Aber dann müsste deine XML-Datei ja so aussehen:
XML-Code:
<datenbank>
  <Thomas>
    
  </Thomas>
</datenbank>
Richtig? Wenn möglich, dann überdenke diesen Aufbau noch einmal. Du machst dir das Leben damit noch schwerer. Wenn du in deiner Datei mehrere Leute hast, die Thomas heißen, dann musst du sowieso weitere Daten heranziehen, um einen von ihnen zweifelsfrei erkennen zu können. Sonst änderst du den falschen Knoten.

Ich weiß nicht, was du programmierst. Vermutlich ein Adressbuch. Aber da würde ich einen anderen, allgemeineren Aufbau der Datei benutzen, schon allein um die Suche zu erleichtern. Nehmen wir an, du hast folgenden Aufbau:
XML-Code:
<datenbank>
  <person>
    <name>Thomas Maier</name>
  </person>
  <person>
    <name>Thomas Müller</name>
  </person>
</datenbank>
und du willst jetzt in einer Art Suchfunktion alle Namen anzeigen lassen, in denen Thomas vorkommt. Dann kannst du erst mal mit
Code:
/datenbank/person/name
alle Knoten finden, in denen auch ein Name drin steht. Und in einer Schleife prüfst du dann den Inhalt des Knotens (node.text oder node.value; eins von beiden jedenfalls ). Und hier lassen sich dann auch Delphi-Referenz durchsuchenlowercase oder Delphi-Referenz durchsuchenuppercase und/oder Delphi-Referenz durchsuchenpos verwenden. Und wenn der Name Thomas dann gefunden wurde, gibst du den Parent-Knoten an eine Funktion deines Programms weiter, die für die Auflistung des Namens und der Daten sorgt, o.ä.

Das ist IMHO einfacher, als ein XML-Format zu nutzen, bei dem man die Namen von Personen als Knotennamen benutzt.
  Mit Zitat antworten Zitat