Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
DOM Create XML element

DOM Create XML element 


 

DOM Create XML element ( ElementRef ; xPath {; attrName ; attrWert} {; attrName2 ; attrWert2 ; ... ; attrNameN ; attrWertN} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
ElementRef  String in Referenz auf Root XML Element
xPath  Text in Pfad xPath des zu erstellenden XML Elements
attrName  String in Zu setzendes Attribut
attrWert  String, Boolean, Lange Ganzzahl, Zahl, Zeit, Datum in Wert des neuen Attributs
Funktionsergebnis  String in 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: 

AusdruckAktion
/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:

TypBeispiel 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:

  • Die Referenz auf das Root Element ungültig ist.
  • Der Name des zu erstellenden Elements ungültig ist, z.B. wenn er mit einer Zahl beginnt.



Siehe auch 

DOM Create XML element arrays
DOM Get XML element
DOM REMOVE XML ELEMENT

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: XML DOM
Nummer: 865

Dieser Befehl ändert die Systemvariable OKDieser Befehl ändert die Systemvariable ErrorDieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Geändert: 4D v11 SQL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)