online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Teerbaby vom 17.10.2019, 12:10 Options

XML/XPath: Unterschiedliche Schreibweisen von Tags

Hallo zusammen,

ich habe das Problem, dass ich in einer XPath-Abfrage (eXist-DB) "einen" XML-Tag abfragen will, der dummerweise in den einzelnen XML-Dateien unterschiedlich geschrieben ist.

Bsp:
XML-Tags: GUID bzw. Guid
XPath: //*[*:GUID="blabla" or *:Guid="blabla"]


so funktioniert das, aber mich würde interessieren, ob es ein Möglichkeit gibt die Groß/Kleinschreibung zu umgehen - d.h. er soll alle Tags mit der Bezeichnung "guid" finden, egal wie das geschrieben ist.

Bin gespannt, ob mir jemand helfen kann ;-)


Antwort schreiben

Antwort 1 von lleopard vom 17.10.2019, 13:26 Options

Hi Teerbaby

Also ich würde sagen das geht mit der LCase-Anweisung

Access sagt dazu:

In diesem Beispiel wird die LCase-Funktion verwendet, um die Buchstaben einer Zeichenfolge in Kleinbuchstaben umzuwandeln.

Dim Groß, Klein
Groß = "Die Antwort ist 42" ' Umzuwandelnde Zeichenfolge.
Klein = Lcase(Groß) ' Liefert "die antwort ist 42".

Wenn du also den Suchstring komplett kleinschreibst und dann nach guid suchst, solltest du -sofern vorhanden - auch guid finden! ;-)

Gruß leo

Antwort 2 von Marie vom 17.10.2019, 13:31 Options

Hm, ich weiss nicht ob sich hier jemand mit xml oder dotnet befasst. Vielleicht fragst Du mal in der Newsgroup Gruppe: microsoft.public.de.german.entwickler.dotnet.csharp

Gruß Marie

Antwort 3 von Marie vom 17.10.2019, 13:31 Options

upps, doch eine antwort da, sorry leo

Antwort 4 von Teerbaby vom 17.10.2019, 13:41 Options

Das Ganze hat ja nichts mit Access zu tun.

Antwort 5 von lleopard vom 17.10.2019, 14:02 Options

Das war ja auch nur ein beispiel...

DotNet kennt die LCase und UCase -Anweisung zB auch.

Aber ich nehme mal an du bist am HP basteln. Auch da wirst du ja deine xml einlesen und kannst über ein vbscript die Datei mit LCase nach guid-Einträgen durchsuchen.

Verstehe jetzt nicht wo dein Problem ist. Denn so oder so kommst du an einem Skript nicht vorbei ...

Antwort 6 von Marie vom 17.10.2019, 14:53 Options

ja liebstes Teerbaby, wie wärs denn, wenn Du uns mal sagen würdest womit es zu tun hat, statt hier den Leo zu rügen, dass es mit Access nix zu tun hat? Das war uns auch klar, dass es mit Access nix zu tun hat.

Du kannst doch nicht einfach hier ne Frage stellen und uns mal raten lassen von welcher Programmiersprache Du sprichst??

Antwort 7 von Teerbaby vom 17.10.2019, 15:48 Options

es geht um einen HTTP-Request mit XPath. Sollte also unabhängig von der Programmiersprache sein (wäre in meinem Fall Java). Im Grunde muss der Request aber auch funktionieren, wenn ich in einfach im Browser ausführe. Wenn ich eine Funktion wie oben beschrieben verwende, habe ich ja nichts gewonnen.
Das heisst aber nicht, dass ich die bisherigen Antworten nicht zu schätzen wüsste.

Ich fürchte auch irgendwie, dass es da keine Lösung gibt und ich alle Möglichkeiten mit ODER-Verknüpfungen abdecken muss. Falls es doch eine gibt müsste das wohl ein XPath-Flag o.ä. sein, dass die Groß/Kleinschreibung ignoriert.

Hatte nur gehofft, dass jemand vielleicht eine bessere Idee hat.

Antwort 8 von lleopard vom 17.10.2019, 16:57 Options

Hallo Marie,

is ja total nett so in Schutz genommen zu werden!! thx ;-)

Nun aber nochmal kurz zu Teerbaby...

Java oder VBScript. Beides geht doch in HP....

und dann liest du die xml-Dateien einfach ein zB über eine Open-Anweisung, packst den gefunden String zusammen, läßt alles kleinschreiben und druchforstest den String dann nach :guid.

Wenn du den Eintrag dann gefunden hast, filterst du die guid raus und fertig...

Warum sollte das nicht gehen???

Antwort 9 von Teerbaby vom 18.10.2019, 08:32 Options

@Leo
ich denke, wir reden etwas aneinander vorbei. Was ich suche ist nur eine andere Form der Abfrage (d.h. ein Request = 1 Zeile). Was ich oben als Beispiel geschrieben habe, entspricht dem SQL "SELECT * FROM Tabelle wHERE GUID='blabla'". Nur, dass es bei einem SQL egal ist wie ich GUID schreibe und alle Felder gefunden werden.

Ich habe jetzt in einem anderen Forum eine Lösung erhalten. Die sieht folgendermaßen aus:

http://localhost:8080/exist/rest/db/testtest?_query=//*[fn:lower-case(fn:local-name(.))='guid'][.="blabla"]

Vielen Dank, für eure Hilfe

Antwort 10 von lleopard vom 18.10.2019, 10:44 Options

Und was hast du jetzt groß anders gemacht als mit lower-case (is ja das gleiche wie lcase, nä!) die zeichenfolge in kleinbuchstaben umgewandelt und nach 'guid' gesucht??

Und das nächste mal solltest du deine Frage vielleicht präziser formulieren ...

Gruß leo

Antwort 11 von Teerbaby vom 18.10.2019, 11:44 Options

Das mit der Formulierung ist nicht immer so einfach. ;)
Ich hatte aber geschrieben, dass ich eine XPath-Abfrage suche und kein Script. Deshalb hab ich das ja auch unter "Datenbanken" gepostet.

Ähnliche Themen

Wozu XML?
greg68  23.04.2007 - 490 Hits - 3 Antworten

Wie MP3 Tags erhalten
silbersurver  05.05.2007 - 142 Hits - 2 Antworten

XML als Value Options mit PHP einlesen
Tob2007  13.11.2007 - 136 Hits -

XML wird nicht richtig angezeigt
Netdeus  07.01.2008 - 461 Hits - 5 Antworten

XML Datei erzeugen
Joshuan  26.05.2008 - 248 Hits - 11 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026