Set-XmlNode

Dieser Befehl fügt einer XML-Datei neue Einträge hinzu beziehungsweise ändert oder löscht bestehende Einträge. Die geänderte Datei wird nur gespeichert, wenn es sich um eine "wohlgeformte" XML-Datei handelt, das Schema wird dagegen nicht validiert.

Im Dialogfeld spezifizieren Sie, welche Information der XML-Datei bearbeitet werden soll (Element, Attribut, Inhalt). Für Elemente ist nur das Hinzufügen oder Löschen möglich, für Attribute und Inhalte steht zusätzlich auch Ändern zur Verfügung.

Zur Identifikation des zu bearbeitenden Teils der XML-Datei verwendet DSM Spezifikationen der XML Path Language (XPath) 2.0. Siehe dazu: https://www.w3.org/TR/xpath20/

Wenn die Suche nach dem zu bearbeitenden Teil der XML-Datei mehrere Treffer findet, können Sie den gesuchten Treffer durch einen Index exakt bestimmen.

Hinweis: Beginnend mit Version 3.0 der PPB kann der Set-XmlNode-Befehl auch durch Drag-and-Drop von XML-Dateien (*.xml) in das Scriptfenster erzeugt werden. Sofern sich die Dateien bereits im Paketverzeichnis befinden, wird der Quellpfad relativ mit .\ referenziert, befinden sich die Quelldateien außerhalb des Paketverzeichnisses, wird der vollständige Pfad übernommen.


Befehlseingaben:

  • Typ des Eintrags
    Auswahl des Typs des zu bearbeitenden Teils der XML-Datei:
    • Element - Grundlegende Struktureinheit einer XML-Datei, die i.d.R. über einen Anfangs- und Ende-Tag verfügt.
      Soll ein Element gelöscht werden, wird das unter XPath-Abfrage identifizierte Element mit allen Unterelementen und Inhalten vollständig gelöscht. Soll ein neues Element hinzugefügt werden, wird der Inhalt des Felds Wert des Eintrags unter dem festgelegten Element der XML-Datei hinzugefügt.
      Ist keine XPath-Abfrage angegeben, wird der Inhalt des Felds Wert des Eintrags genutzt, um den vollständigen Inhalt der XML-Datei zu ersetzen. Auf diese Weise können Sie also eine neue XML-Datei erstellen.
    • Attribut eines Elements
      Soll ein Attribut gelöscht werden, wird das Attribut aus dem unter XPath-Abfrage identifizierten Element vollständig gelöscht.
      Soll ein Attribut hinzugefügt oder geändert werden, wird das Attribut in das identifizierte Element eingetragen. Der Befehl erkennt automatisch ob das Attribut schon existiert und reagiert entsprechend. 
    • Inhalt eines Elements - Gemeint ist der Text-Inhalt eines Elements zwischen Anfangs- und Ende-Tag (ohne Unterelemente)
      Soll der Inhalt eines Elements gelöscht werden, wird er aus dem unter XPath-Abfrage identifizierten Element vollständig gelöscht.
      Soll der Inhalt eines Elements hinzugefügt oder geändert werden, wird der Inhalt in das identifizierte Element eingetragen bzw. ersetzt den vorhanden Inhalt. Unterelemente werden nicht als Inhalt behandelt und somit ignoriert.
  • Aktion
    Folgende Aktionen stehen zur Auswahl:
    • Hinzufügen
    • Ändern 
      Diese Aktion gibt es nicht für den Typ Element. Ist ein zu änderndes Attribut bzw. ein Inhalt nicht vorhanden, wird hinzugefügt.
    • Löschen
  • Name der XML-Datei
    XML-Datei, die geändert werden soll. Die Verwendung von Variablen ist möglich. Wählen Sie über die "..."-Schaltfläche eine (auf dem Paketiersystem) bestehende Datei aus oder geben Sie den Pfad manuell an.
  • XPath-Abfrage
    Identifikation des zu bearbeitenden Teils der XML-Datei mithilfe der XPath-Syntax. Mit einem Klick auf die Schaltfläche "..." öffnen Sie für die angegebene XML-Datei den XPath-Browser, der eine bequeme Auswahl des gesuchten Elements inklusive Umwandlung in eine eindeutige XPath-Abfrage ermöglicht. Dabei werden auch Namensräume (namespaces) berücksichtigt. Die Datei wird nur angezeigt, wenn es sich um eine "wohlgeformte" XML-Datei handelt.

    Für den Fall, dass die betreffende XML-Datei lokal nicht vorhanden ist, wählen Sie eine alternative Musterdatei aus, die der zu bearbeitenden XML-Datei entsprechen sollte.

    Die im XPath-Browser angebotenen Optionen (index-basierte Abfrage, rekursive Suche) haben unmittelbaren Einfluss auf die Syntax der XPath-Abfrage und orientieren sich an den Spezifikationen der XML Path Language (XPath) 2.0. Alternativ können Sie die XPath-Abfrage auch manuell eingeben, in diesem Fall müssen Sie aber selbst für die Einhaltung der Syntax sorgen.

    Die XPath-Abfrage erlaubt die Verwendung von Variablen.
  • Index
    Legt fest, welche Elemente bearbeitet werden sollen, wenn die Abfrage mehrere Treffer in der XML-Datei zurückliefert. Zur Auswahl stehen:
    • Alle (Vorgabe)
    • Erster Treffer
    • Letzter Treffer
    • Bestimmter Index
      Dazu muss angegeben werden, an welcher Stelle der Trefferliste das gewünschte Element steht, z.B. 3 für das dritte Vorkommen in der XML-Datei. Nutzen Sie bei Bedarf den Befehl Read-XmlNode, um den gewünschten Indexwert zu bestimmen.
  • Name des Attributs
    Enthält den Namen des gesuchten Attributs, wenn Typ des Eintrags = Attribut ausgewählt wurde. Der Platzhalter * ist erlaubt.
  • Wert des Eintrags
    Legt für die Aktionen Hinzufügen und Ändern den XML-Inhalt fest, welcher in der XML-Datei ersetzt beziehungsweise hinzugefügt werden soll. Zur Eingabe komplexer und mehrzeiliger Inhalte öffnen Sie mit Klick auf die Schaltfläche ... einen Editor. Die Verwendung von Variablen ist möglich. 
  • 32-Bit Modus auf x64 Computer verwenden
    Wenn das Script auf einem 64-Bit Betriebssystem ausgeführt wird, kann bei Referenzierung auf das SYSTEM32-Verzeichnis automatisch das Pendant für 32-Bit Applikationen SysWOW64 verwendet werden.


Beispiel:

Das Beispiel hier ändert den Log-Pfad in der App Deployment Toolkit Konfigurationsdatei:


Entspricht DSM eScript Befehl:

  • ModifyXML


Siehe auch: