AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

suche in xml

Ein Thema von mav · begonnen am 22. Mär 2005 · letzter Beitrag vom 29. Mär 2005
Antwort Antwort
Seite 1 von 3  1 23      
mav

Registriert seit: 9. Jan 2004
98 Beiträge
 
Delphi 7 Personal
 
#1

suche in xml

  Alt 22. Mär 2005, 19:42
hi all

ich durchsuche meine .xml mithilfe von

nl:= xmldoc.selectNodes('/*/*[contains(name,"'+LabeledEdit1.Text+'")]'); jedoch ist es nun fascht logisch, das ein Eintrag in der .xml welcher z.B.: Thomas ist nich durch thomas gefunden werden kann.. kann mer hier jemand helfen
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#2

Re: suche in xml

  Alt 22. Mär 2005, 20:04
Du kannst mit lowercase alle Buchstaben in kleinbuchstaben umwandeln. (oder anders mit upperCase alles in groß)

lowercase(Suchbegriff)=lowerCase(Xml-eintrag) mfg


edit: Delphi-Referenz durchsuchenlowercase
  Mit Zitat antworten Zitat
mav

Registriert seit: 9. Jan 2004
98 Beiträge
 
Delphi 7 Personal
 
#3

Re: suche in xml

  Alt 22. Mär 2005, 20:11
delphi sagt mir aber, dass uppercase und lowercase nicht xmldoc komp. sind

habe ich auch schon probiert
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#4

Re: suche in xml

  Alt 22. Mär 2005, 21:09
Wie nicht kompatibel? Du kannst ja den Eintrag aus der DB auslesen überprüfen und verarbeiten. Also, dass du z.B. den Eintrag in ne Varibale kopierst (oder geht dat net?) und dann mit Delphi-Referenz durchsuchenupperCase vergleichst???


mfg
  Mit Zitat antworten Zitat
mav

Registriert seit: 9. Jan 2004
98 Beiträge
 
Delphi 7 Personal
 
#5

Re: suche in xml

  Alt 22. Mär 2005, 22:51
habe das ganze jetzt mal so versucht

Delphi-Quellcode:
nl:= xmldoc.selectNodes('/*/*[contains(name,"'+LabeledEdit1.Text+'")]');

for i := 0 to nl.length - 1 do begin
str1 := nl.item[i].text;
str2 := LabeledEdit1.Text;
if lowercase(str1) = lowercase(str2) then
jedoch gibt er mir immer noch nichts heraus, wenn ich "thomas" klein schreibe

[edit]
weitere infos zugunsten von bttb

xmlDoc: IXMLDOMDocument2 statt /*/* könnte ich auch /<datenbank>/<eintraege> schreiben
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#6

Re: suche in xml

  Alt 22. Mär 2005, 23:05
was machst du da überhaupt? was für ein typ ist xmldoc? Ich kenne den SelectNodes-Befehl gar nicht (IXMLDocument und TXMLDocument haben den nicht). Und was soll der merkwürdige Kram im String? (mit den /*/* usw?)

Ohne diese Infos wird Dir keiner helfen können.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: suche in xml

  Alt 23. Mär 2005, 00:19
Ich möchte zwar nicht unhöflich klingen, aber wenn du mit den Infos nichts anfangen kannst, dann häng dich einfach nicht rein. Oder mach dich vorher zum Thema XML, XPath, usw. schlau, wenn du gern helfen möchtest.

Ich sehe da nichts Ungewöhnliches. Ich habe auch nur keine Lösung, weil XML nun mal zwischen Groß- und Kleinschreibung unterscheidet, und weil man daher (IMHO und jetzt auf die Schnelle behauptet) mit Bordmitteln nicht weiterkommt. Falls mir zufällig im XML-SDK eine Lösung begegnet, ob man auch unabhängig von der Schreibweise nach Knoten suchen kann, sage ich Bescheid.
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#8

Re: suche in xml

  Alt 23. Mär 2005, 00:22
Kannst du sonst deine Suche nicht zweimal laufen lassen, einmal mit klein und einmal mit großem Anfang?
Oder ist es auch wahrscheinlich, das ein Buchstabe mitten im Wort groß geschrieben ist?

Czapie.
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: suche in xml

  Alt 23. Mär 2005, 10: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
mav

Registriert seit: 9. Jan 2004
98 Beiträge
 
Delphi 7 Personal
 
#10

Re: suche in xml

  Alt 23. Mär 2005, 15:33
also meine .xml ist so aufgebaut

<tester_db><tester><name>Thomas</name></tester></tester_db>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz