gelöst XMLStarlet Anweisung in For Schleife Verwenden

Mitglied: eldorado1

eldorado1 (Level 1)

17.08.2015, aktualisiert 18.08.2015, 906 Aufrufe, 10 Kommentare

Hallo,

ich würde gerne die Ausgabe die ich mittels xmlstarlet mit einer Batch Datei erzeuge in einer Variable speicher damit ich diese nachher
mit anderen Werten vergleich kann.

Das liefert mir das was ich mir vorstelle
In der Variable test steht der 8 stellige Inhalt.

Allerdings hat die xml Datei einen Namespace und wenn ich diesen in der xmlstarlet Anweisung verwende habe ich ein = Zeichen
welches nicht erlaubt ist oder?
Der folgende Aufruf Funktioniert dann auch nicht mehr!

Vielleicht kann mir ja jemand weiter helfen.


Vielen Dank

Gruß eldorado
Mitglied: 114757
LÖSUNG 17.08.2015, aktualisiert um 16:11 Uhr
Moin,
bestimmte Sonderzeichen wie das Gleichheitszeichen etc. unter anderem auch ( | < > & ( ) ) musst du in der FOR Anweisung so "escapen"
Also dem Sonderzeichen ein ^ voranstellen
Gruß jodel32
Mitglied: eldorado1
17.08.2015, aktualisiert 18.08.2015
Hallo jodel32,

danke für deine schnelle Antwort
Hat super funktioniert

habe aber noch etwas :|

mein %baum% sie jetzt so aus
jetzt würde ich gerne noch ein Attribut, wie folgt, mit einbauen.

aber das funktioniert leider auch nicht
Mitglied: 114757
17.08.2015, aktualisiert um 16:20 Uhr
die eckigen Klammern und das @ würde ich auch mal escapen...die Liste der Sonderzeichen oben war nicht komplett ...
in nicht nur eines der Sonderzeichen escapen sondern alle Vorkommen
Mitglied: eldorado1
17.08.2015 um 16:23 Uhr
Habe ich mir gedacht und schon ausprobiert - leider ohne Erfolg
Mitglied: 114757
17.08.2015, aktualisiert um 16:37 Uhr
Ach so habe dein Posting da gerade missinterpretiert...dachte du gibst das direkt in den For Loop ein..
Nee die Sonderzeichen musst du nur escapen wenn sie direkt im Körper des For-Loops angegeben werden ...
Probiers mal so
und dann die Baum-Variable im For-Loop verwenden. Kanns gerade nicht testen, bin auf dem Phone... sollte aber laufen
Mitglied: eldorado1
17.08.2015 um 16:37 Uhr
Kein Problem.

Hat leider auch zu keiner Ausgabe geführt.

auch wenn ich die Struktur direkt - also anstelle von %baum% - eingebe, erhalte ich keine Ausgabe.
Mitglied: 114757
17.08.2015, aktualisiert um 17:23 Uhr
Ich kenne das XML-Tool jetzt nicht, aber ich vermute die Namespace-Angabe ist hier eventuell nicht deklariert.

Wenn man wüsste wie dein XML-Tree aussieht und was du dort filtern willst könnte man dir eventuell weiterhelfen.

-edit- habe das hier gerade mal ausprobiert und funktioniert hier einwandfrei, da muss deine XPATH Query irgendwie keine Ausgabe erzeugen ...

Mein Test hatte folgende XML Datei:
und mein dazugehörger Batchcode:
Mitglied: eldorado1
18.08.2015, aktualisiert um 13:21 Uhr
Hallo und nochmal Vielen Dank für deine Mühe

habe es auch hinbekommen. Meine Lösung:
Habe dann immer gleich %%i für die abfrage genommen in der Schleife.
Wenn ich innerhalb der Schleife %%i einer Variable zugewiesen habe, hat diese mir komischer weise immer einen falschen Wert zugewiesen der nicht
identisch mit %%i war.

Also deine Lösung war richtig musste nur die - " - bei - baum="/... - nach dem - = - Zeichen setzen und nicht davor - "baum=/... -

Hätte gleich noch eine Frage :|

Kann ich in einer If Anweisung das genau so machen??
Also so:

if ('xml sel...')== Ausdruck?

Gruß eldorado

Ps: Wie kann ich meine Quellcode als solchen formatieren? Dann werden die Beiträge besser lesbar
Mitglied: 114757
18.08.2015, aktualisiert um 10:17 Uhr
Zitat von eldorado1:

Also deine Lösung war richtig musste nur die - " - bei - baum="/... - nach dem - = - Zeichen setzen und nicht davor
- "baum=/... -
Wenn du im Schleifenkörper um die Variable "%Baum%" die Anführungszeichen gesetzt hättest wäre es auf das selbe herausgekommen
Hätte gleich noch eine Frage :|

Kann ich in einer If Anweisung das genau so machen??
Also so:

if ('xml sel...')== Ausdruck?
Nein, speichere mit der For-Schleife deinen Wert in einer Variablen und vergleiche dann die Variablen.
Ps: Wie kann ich meine Quellcode als solchen formatieren? Dann werden die Beiträge besser lesbar
Guckst du in die FAQ https://www.administrator.de/faq/20#toc-27

Gruß jodel
Mitglied: eldorado1
18.08.2015 um 13:23 Uhr
Danke

Habe es auch nochmal mit einer For-Schleife gemacht ;)

Gruß eldorado
Titel: XMLStarlet Anweisung in For Schleife Verwenden
Content-ID: 280443
Art des Inhalts: Frage
Ausgedruckt am: 04.04.2020 um 01:01:40 Uhr
URL: https://administrator.de/contentid/280443