Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
DOM Create XML element
|
DOM Create XML element ( ElementRef ; xPath {; attrName ; attrWert} {; attrName2 ; attrWert2 ; ... ; attrNameN ; attrWertN} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
ElementRef | String |
![]() |
Referenz auf Root XML Element | |||||
xPath | Text |
![]() |
Pfad xPath des zu erstellenden XML Elements | |||||
attrName | String |
![]() |
Zu setzendes Attribut | |||||
attrWert | String, Boolean, Lange Ganzzahl, Zahl, Zeit, Datum |
![]() |
Wert des neuen Attributs | |||||
Funktionsergebnis | String |
![]() |
Referenz auf erstelltes XML Element | |||||
Die Funktion DOM Create XML element erstellt ein neues Element im XML Element (definiert in ElementRef) im Pfad (definiert in xPath) und fügt bei Bedarf Attribute hinzu.
In ElementRef übergeben Sie die Referenz auf das Root Element, z.B. erstellt mit DOM Create XML Ref.
In xPath übergeben Sie den Pfad des zu erstellenden Elements in der XPath Notation. Weitere Informationen dazu finden Sie im Abschnitt XPath Notation verwalten (DOM). Folgende Pfadausdrücke werden unterstützt:
Ausdruck | Aktion |
/ | Gibt den Root Knoten an(absoluter Pfad) |
para[1] | Gibt das erste para Unterelement des Kontextknoten an |
para[last()] | Gibt das letzte para Unterelement des Kontextknoten an |
Hinweis zur Kompatibilität: Ab v18 R3 ist die XPath Implementation in 4D nicht mehr konform. Zur Wahrung der Kompatibilität wird in konvertierten Anwendungen standardmäßig die bisherige Implementation beibehalten. Um die erweiterten Features in Ihren konvertierten Anwendungen zu nutzen, müssen Sie auf der Seite Kompatibilität die Option Verwende Standard XPath aktivieren.
Im Parameter xPath können Sie direkt den Namen eines Eintrags übergeben, um vom aktuellen Eintrag einen Untereintrag zu erstellen (siehe Beispiel 3).
Gibt es keine Elemente des Pfads, werden sie angelegt. Gibt es bereits Elemente des Pfads, wird ein neuer Knoten hinzugefügt.
Hinweis: Haben Sie einen oder mehrere Namensbereiche für den Baum gesetzt, definiert in ElementRef (siehe Befehl DOM Create XML Ref), muss dem Parameter xPath der Name des verwendeten Bereichs vorangestellt werden (zum Beispiel “MyNameSpace:MyElement”).
In den optionalen Parametern attrName und attrWert können Sie Paare Attribute/Attributwerte in Form von Variablen, Feldern oder tatsächlichen Werten übergeben. Sie können beliebig viele Paare übergeben.
Sie können jetzt in attrWert auch einen Wert übergeben, der nicht vom Typ Text ist, das kann Boolean, Ganzzahl, Zahl, Datum oder Zeit sein. 4D steuert die Umwandlung in Text gemäß den folgenden Vorgaben:
Typ | Beispiel für konvertierten Wert |
Boolean | "Wahr" oder "Falsch" (nicht übersetzt) |
Ganzzahl | "123456" |
Zahl | "12.34" (Dezimaltrenner ist immer ".") |
Datum | "2006-12-04T00:00:00Z" (RFC 3339 Standard) |
Zeit | "5233" (Anzahl Sekunden) |
Die Funktion gibt als Ergebnis die XML Referenz des erstellten Elements zurück.
Sie wollen folgendes Element erstellen:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
<Elem1>
<Elem2>
<Elem3> </Elem3>
<Elem3> </Elem3>
</Elem2>
</Elem1>
</RootElement>
Dazu schreiben Sie:
C_TEXT(vRootRef;vElemRef)
vRootRef:=DOM Create XML Ref("RootElement")
vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
vElemRef:=DOM Create XML element(vRootRef;vxPath)
Sie wollen folgendes Element mit Attributen erstellen:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
<Elem1>
<Elem2>
<Elem3 Font=Verdana Size=10> </Elem3>
<Elem3 Font=Verdana Size=8> </Elem3>
</Elem2>
</Elem1>
</RootElement>
Dazu schreiben Sie:
C_TEXT(vRootRef;vElemRef)
C_TEXT($aAttrName1;$aAttrName2;$aAttrVal1;$aAttrVal2;$aAttrVal3)</p><p>$aAttrName1:="Font"
$aAttrName2:="Size"
$aAttrVal1:="Verdana"
$aAttrVal2:="10"
$aAttrVal3:="8"
vRootRef:=DOM Create XML Ref("RootElement")
vxPath:="/RootElement/Elem1/Elem2/Elem3"
vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal2)
vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal3)
Wollen Sie später ein Element einfügen, schreiben Sie:
vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
vElemRef:=DOM Create XML element(vRootRef;vxPath;"Font";"Arial")
Sie erhalten:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
<Elem1>
<Elem2>
<Elem3 Font=Verdana Size=10> </Elem3>
<Elem3 Font=Arial> </Elem3>
<Elem3 Font=Verdana Size=8> </Elem3>
</Elem2>
</Elem1>
</RootElement>
Sie wollen folgende Struktur erstellen und exportieren:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Root> <Elem1>Hello</Elem1> </Root>
Dazu verwenden Sie die Syntax, die auf einem einfachen Eintragsnamen basiert. Dazu schreiben Sie:
C_TEXT($root)
C_TEXT($ref1)
$root:=DOM Create XML Ref("Root")
$ref1:=DOM Create XML element($root;"Elem1")
DOM SET XML ELEMENT VALUE($ref1;"Hello")
DOM EXPORT TO FILE($root;"mydoc.xml")
DOM CLOSE XML($root)
Bei korrekt ausgeführtem Befehl wird die Systemvariable OK auf 1 gesetzt, sonst auf 0 (Null) und ein Fehler wird zurückgegeben.
Ein Fehler wird erzeugt, wenn:
DOM Create XML element arrays
DOM Get XML element
DOM REMOVE XML ELEMENT
Produkt: 4D
Thema: XML DOM
Nummer:
865
Geändert: 4D v11 SQL
4D Programmiersprache ( 4D v20 R7)