XML_INSERT_BEFORE

Script-Funktion: Erstellt ein neues XML-Element und fügt dieses vor einem anderen Element ein.

Syntax

XML_INSERT_BEFORE (Parent-Element, Referenzelement, Name, Wert)

Syntaxteil

Beschreibung/Format

Parent-Element

Verweis auf das Element, in dem sich das Referenzelement befindet.
Format: Script-Literal oder Script-Variable

Referenzelement Verweis auf das Element, vor dem das neue Element eingefügt werden soll. Muss sich innerhalb des Parent-Elements befinden.
Format: Script-Literal oder Script-Variable
Name Name des neuen Elements
Format: Script-Literal oder Script-Variable
Wert Wert des neuen Elements
Format: Script-Literal oder Script-Variable

Rückgabewert

Verweis auf das neue Element.

Das Script-Element fügt ein neues Element vor einem angegebenen bestehenden Element innerhalb des geöffneten XML-Dokuments ein. Geben Sie das Parent-Element an, das darin enthaltene Referenzelement und den Namen zusammen mit dem Wert des neuen Elements.

Wichtig!

  • Das eingegebene Referenzelement muss sich auf ein direktes Unterelement des Parent-Elements beziehen. Andernfalls kommt es beim Ausführen des Script-Elements zu einem Laufzeitfehler.
  • Leerzeichen sind im Elementnamen nicht erlaubt und führen zu einem Laufzeitfehler.

Hinweise:

  • Die XML-Struktur wird nur im Speicher geändert.  Das Script-Element hat keinen Einfluss auf die Registerkarte "Dokumentation".
  • Verwenden Sie die Script-Funktion XML_OPEN, um das XML-Dokument zu öffnen.  Weitere Informationen finden Sie unter XML_OPEN.

Beispiel

Das folgende Beispiel öffnet die Registerkarte Strukturierte Dokumentation als XML-Dokument. Das neue Element 'Neues_Element' wird vor dem Unterelement 'SubChild2' innerhalb des Parent-Elements 'Child' eingefügt.

Anschließend werden alle Unterelemente des Parent-Elements ausgegeben und daraufhin überprüft, ob das Element erfolgreich eingefügt wurde.

:SET &XMLDOCU#=XML_OPEN(DOCU,,"@Details")

: IF &XMLDOCU# <>
""
:SET &PARENT# = XML_SELECT_NODE(&XMLDOCU#,"Child")
:SET &REF# = XML_SELECT_NODE(&XMLDOCU#,"Child/SubChild2")

:SET &NEW# = XML_INSERT_BEFORE(&PARENT#,&REF#,"Neues_Element","Test")

:SET &ELEMENT# = XML_GET_FIRST_CHILD(&PARENT#)

:WHILE &ELEMENT# <> ""
: SET &NAME# = XML_GET_NODE_NAME(&ELEMENT#)
: P 'Element: &NAME#'
: SET &ELEMENT# = XML_GET_NEXTSIBLING(&ELEMENT#)
:ENDWHILE

:ENDIF



:XML_CLOSE &XMLDOCU#

Ergebnis im Aktivierungsprotokoll: 

2013-08-14 13:32:27 – U0020408 Element: SubChild1
2013-08-14 13:32:27 – U0020408 Element: Neues_Element
2013-08-14 13:32:27 – U0020408 Element: SubChild2

Siehe auch: