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, Reference element, Name, Value)
Syntaxteil |
Beschreibung/Format |
---|---|
Parent element |
Verweis auf das Element, in dem sich das Verweiselement befindet. |
Reference element | 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 |
Value | Wert des neuen Elements Format: Script-Literal oder Script-Variable |
Rückgabewert |
---|
Verweis auf das neue Element. |
Hinweise:
Das Scriptelement fügt ein neues Element vor einem angegebenen bestehenden Element innerhalb des geöffneten XML-Dokuments ein (XML_OPEN). Das Parent-Element, das darin enthaltene Verweiselement und der Name mit dem Wert des neuen Elements müssen angegeben werden.
Das eingegebene Verweiselement muss sich auf ein direktes Subelement des Parent-Elements beziehen. Andernfalls kommt es beim Ausführen des Scriptelements zu einem Laufzeitfehler.
Das Scriptelement ändert nur die XML-Struktur im Speicher. Der Inhalt der Registerkarte Dokumentation ist davon nicht betroffen.
Bitte beachten Sie, dass Leerzeichen im Elementnamen nicht erlaubt sind und zu einem Laufzeitfehler führen.
Beispiel
Das folgende Beispiel öffnet die Registerkarte Strukturierte Dokumentation als XML-Dokument. Das neue Element 'New_Element' wird vor dem Subelement 'SubChild2' innerhalb des übergeordneten Elements 'Child' eingefügt.
Anschließend werden alle Subelemente des übergeordneten 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#,"New_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: New_Element
2013-08-14 13:32:27 – U0020408 Element: SubChild2
Siehe auch: