Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Affiliate
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

XPath-Befehle: XML-Pfadabfragen mit Location Paths und Achsen

XPath (XML Path Language) ist eine vom W3C standardisierte Abfragesprache, mit der man Teile eines XML-Dokuments über Pfadausdrücke adressiert. Sie ist die gemeinsame Basis von XSLT, XQuery und XML-Schema und wird seit 1999 (XPath 1.0) über XPath 2.0 (2007) bis XPath 3.1 (2017) weiterentwickelt.

Location Paths

Ein Location Path besteht aus Schritten, die mit / getrennt werden. Ein führender / bedeutet absoluter Pfad ab dem Dokumentknoten, ohne / ist der Pfad relativ zum Kontextknoten.

/katalog/buch            // alle buch-Knoten unter katalog
//autor                   // alle autor-Knoten im Dokument
/katalog/buch[1]          // erstes buch
/katalog/buch[@id='b1']   // buch mit Attribut id="b1"

Wichtige Achsen und Abkürzungen

  • child:: — Kindknoten (Standardachse, oft weggelassen)
  • attribute:: → abgekürzt @, z.B. @id
  • descendant:: → abgekürzt //
  • parent:: → abgekürzt ..
  • self:: → abgekürzt .
  • following-sibling::, preceding-sibling:: — Geschwister
  • ancestor::, descendant-or-self:: — Vorfahren/Nachfahren

Operatoren und Funktionen

//buch[preis > 20]              // Vergleichsoperatoren
//buch[position() <= 3]         // Positionsfunktion
count(//buch)                   // Anzahl der Treffer
string(//buch[1]/titel)         // Stringwert extrahieren
//buch[contains(titel, 'XML')]  // Textsuche

XPath 2.0/3.1 erweitern das Datenmodell um Sequenzen, if-Ausdrücke, for-Schleifen, reguläre Ausdrücke (Funktionen matches, replace, tokenize) und ab 3.1 Maps und Arrays — damit lassen sich auch JSON-Daten adressieren.

Werkzeuge

Häufig genutzte Implementierungen sind xmllint --xpath (libxml2), Saxon (Java/.NET) und BaseX. In Browsern steht XPath über document.evaluate() bereit.

Verwandte Grundlagen: XSLT/XSL-Befehle (XPath ist die Abfragesprache der Stylesheets), XQuery-Befehle (baut direkt auf XPath 2.0 auf), XSD-Befehle (Typisierung der XML-Daten), XML.

XQuery-Befehle: XML-Abfragen mit FLWOR-Ausdrücken

XQuery (XML Query Language) ist eine vom W3C standardisierte funktionale Abfragesprache für XML- und seit 3.1 auch JSON-Daten. Sie entstand aus der Sprache Quilt und kombiniert Ideen von XPath, SQL und OQL; XQuery 1.0 wurde 2007 veröffentlicht, XQuery 3.1 folgte 2017.

FLWOR-Ausdrücke

Das Herzstück von XQuery sind FLWOR-Ausdrücke (gesprochen „Flower"): for, let, where, order by, return.

for $b in doc('katalog.xml')//buch
let $preis := $b/preis
where $preis > 20
order by $preis descending
return $b/titel
  • for — iteriert über eine Sequenz
  • let — bindet eine Variable an einen Wert
  • where — filtert (wie WHERE in SQL)
  • order by — sortiert die Ergebnissequenz
  • return — baut das Ergebnis (Tupel-Konstruktion)

Datenmodell und Konstruktion

XQuery arbeitet auf dem XDM (XQuery and XPath Data Model): Dokumentknoten, Elemente, Attribute, atomare Werte und Sequenzen. Ergebnisse werden direkt als XML konstruiert:

<ergebnis>{
  for $b in //buch return <titel>{ $b/titel/text() }</titel>
}</ergebnis>

Typen, JSON und Werkzeuge

XQuery ist stark typisiert (in Verbindung mit XML-Schema) und unterstützt seit 3.1 Maps, Arrays und JSON-Serialisierung. Bekannte Prozessoren sind Saxon, BaseX, eXist-db und die Implementierung in Oracle XML DB.

Verwandte Grundlagen: XPath-Befehle (XQuery 2.0 enthält XPath 2.0 vollständig), XSD-Befehle (Typen für die Validierung), XSLT/XSL-Befehle (Transformation vs. Abfrage), SQL-Befehle (das relationale Vorbild von FLWOR).

Nushell-Befehle: Strukturierte Daten statt Text-Streams

Nushell (Kurzform nu) ist eine moderne, in Rust geschriebene Shell, die mit strukturierten Daten statt rohen Text-Streams arbeitet. Statt Zeichenketten durch die Pipeline zu schieben, transportiert sie typisierte Werte – Listen, Records und Tabellen. Ausgabe und Weiterverarbeitung bleiben damit konsistent, ohne aufwendiges Parsen wie bei klassischen Shells.

Erste Schritte

Installation und Start sind unkompliziert, danach liefert bereits ls eine echte Tabelle:

nu
> ls | where size > 1kb | sort-by name

Strukturierte Formate liest open direkt: open config.json | get server.port. Konvertiert wird mit from json/from csv/from yaml und to json.

Die wichtigsten Nushell-Kommandos

  • ls, open, get, select – Daten lesen und Spalten wählen
  • where, sort-by, group-by – filtern, sortieren, gruppieren
  • each, par-each – Zeilen parallel verarbeiten
  • into – Typkonvertierungen (into int, into datetime)
  • str, math, path – String-, Zahlen- und Pfadoperationen
  • describe – Typ eines Werts anzeigen
  • let/mut, $env, $nu – Variablen und Umgebung

Konfiguration

Die Startdateien liegen unter ~/.config/nushell/config.nu und env.nu; Aliase, Keybindings und Prompt werden dort deklariert. Auch klassische Unix-Befehle lassen sich weiterhin aufrufen – Nushell versteht deren Textausgabe, wandelt sie aber bei bekannten Kommandos in Tabellen um.

Praxis-Tipps

  • Für Systemadministration und Datenauswertung spart Nushell das Zusammensetzen von grep/awk-Ketten
  • Skripte enden auf .nu, Ausführung mit nu skript.nu oder nu -c '<befehle>'
  • Die Inspiration kommt von der PowerShell – wer PowerShell gewohnt ist, findet sich schnell zurecht

Verwandte Grundlagen: PowerShell, Bash, Python, grep, SSH/SCP/rsync, YAML, TOML und JSON. Für regelbasierte XML-Transformationen ist XSLT zuständig, interaktive Programme automatisiert Expect.

Expect-Befehle: Interaktive Programme automatisieren

Expect ist eine Erweiterung der Skriptsprache Tcl, mit der sich interaktive Terminal-Programme automatisieren lassen. Entwickelt von Don Libes am NIST (1990), wartet Expect auf bestimmte Ausgaben und sendet automatisch Antworten – so laufen Programme wie SSH, FTP oder passwd ohne manuelle Eingaben.

Erste Schritte

Ein einfaches SSH-Login-Skript sieht so aus:

#!/usr/bin/expect -f
set timeout 20
spawn ssh benutzer@host
expect "password:"
send "geheim123
"
interact

Ausgeführt wird es mit expect login.exp oder direkt nach chmod +x.

Die wichtigsten Expect-Kommandos

  • spawn – startet das interaktive Programm
  • expect – wartet auf ein Muster in der Ausgabe
  • send – sendet eine Antwort (mit für Enter)
  • set timeout – maximale Wartezeit in Sekunden
  • exp_continue – nach einem Treffer weiter auf weitere Muster warten
  • interact – übergibt die Steuerung an den Benutzer
  • expect eof / expect timeout – auf Programmende bzw. Zeitüberschreitung reagieren
  • autoexpect – zeichnet eine Session auf und erzeugt ein lauffähiges Skript

Treffer landen in $expect_out(buffer), der gesendete Text in $send_out.

Praxis-Tipps

  • Typische Einsatzfälle: SSH/FTP-Anmeldungen, interaktive Installer, Test-Automation von Konsolenanwendungen
  • Passwörter stehen im Klartext im Skript – für Produktionssysteme stattdessen SSH-Keys verwenden
  • Das Python-Pendant heißt pexpect, nützlich für Python-Test-Suiten
  • Bei instabilen Prompts hilft expect -re mit regulären Ausdrücken (siehe Regex)

Verwandte Grundlagen: Tcl, Bash, SSH/SCP/rsync, Perl, Python, Batch/CMD. Wer strukturierte Shell-Pipelines bauen will, nutzt Nushell; regelbasierte XML-Transformationen übernimmt XSLT.

XSLT/XSL-Befehle: XML-Transformationen mit Stylesheets

XSLT (Extensible Stylesheet Language Transformations) ist eine deklarative Sprache des W3C, mit der sich XML-Dokumente in andere Formate überführen lassen – etwa XML in HTML, Text oder ein anderes XML-Schema. Ein XSLT-Stylesheet ist selbst eine XML-Datei und besteht aus Templates (Schablonen), die auf Knoten des Quellbaums passen.

XML selbst ist als vereinfachte Teilmenge aus der SGML hervorgegangen — deren Deklarationen und Entitaeten-Konzepte erklaert der Artikel SGML-Befehle.

Erste Schritte

Ein Stylesheet beginnt mit der Root-Deklaration und dem Template für das Wurzelelement:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html><body>
      <xsl:apply-templates/>
    </body></html>
  </xsl:template>
</xsl:stylesheet>

Verarbeitet wird die Datei zum Beispiel mit xsltproc style.xsl quelle.xml > ausgabe.html (GNOME/libxslt) oder mit Saxon (Java/.NET).

Die wichtigsten XSL-Elemente

  • xsl:template match – definiert eine Regel für passende Knoten (XPath-Muster)
  • xsl:apply-templates – verarbeitet Kindknoten weiter (Push-Stil)
  • xsl:value-of select – gibt den Wert eines Ausdrucks aus
  • xsl:for-each – Schleife über eine Knotenmenge (Pull-Stil)
  • xsl:if / xsl:choose / xsl:when / xsl:otherwise – Bedingungen
  • xsl:call-template / xsl:param / xsl:variable – benannte Templates und Variablen
  • xsl:output – legt das Zielformat fest (method="html|xml|text")
  • xsl:include / xsl:import – Stylesheets wiederverwenden

Die Pfadausdrücke stammen aus XPath (/katalog/buch, //autor, @id).

XSLT 2.0 und 3.0

XSLT 1.0 wurde 1999 Standard, 2.0 folgte 2007 und 3.0 2017. Neuere Versionen bringen XPath 2.0/3.0, Gruppierung mit xsl:for-each-group, eigene Funktionen (xsl:function), Higher-Order-Funktionen, JSON-Output und Streaming für sehr große Dokumente mit.

Praxis-Tipps

  • Push-Stil (apply-templates) ist wartbarer als tief verschachtelte for-each-Schleifen
  • Für Datenmigration zwischen XML-Schemata, Dokumentation (DocBook zu HTML) und ePub-Builds ist XSLT ein Klassiker
  • Zum Debuggen hilft es, Zwischenergebnisse mit xsl:message auszugeben

Verwandte Grundlagen: XML, HTML & CSS, Markdown, YAML, TOML und JSON, Regex. Wer strukturierte Daten in der Shell verarbeiten will, nutzt Nushell; automatisierte Transformations-Workflows lassen sich mit Expect steuern.

  1. SQLite-Befehle: Die eingebettete Datenbank mit der sqlite3-CLI
  2. PL/SQL-Befehle: Die prozedurale SQL-Erweiterung von Oracle
  3. T-SQL-Befehle: Transact-SQL für Microsoft SQL Server
  4. APL-Befehle: Schnellreferenz für Array-Programmierung

Seite 33 von 45

  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz