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
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
lowercase oder
uppercase und/oder
pos 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.