Zum Hauptinhalt springen

XmlWrite

Dieser Befehl schreibt einen Knoten in die XML-Datei (obj). Der Inhalt wird vor dem Schreiben gepuffert. Wird die Größe des Puffers überschritten oder XmlWrite (_XmlEndDocument) aufgerufen, wird der Pufferinhalt in die Datei geschrieben. Je nach Typ (int1) müssen die Argumente Argument1 (alpha2) bis Argument5 (alpha6) angegeben werden. Folgende Konstanten können als Typ (int1) angegeben werden:

  • Typ: Beschreibung
  • _XmlStartDocument (1): Start des XML-DokumentesArgument1 Version Argument2 Zeichensatzkodierung Argument3 Standalone-Flag
  • _XmlEndDocument (2): Ende des XML-DokumentesKeine Argumente benötigtAlle offenen Knoten werden geschlossen.
  • _XmlStartElement (3): Neues Element öffnenArgument1 Name
  • _XmlEndElement (4): Element schließenKeine Argumente benötigt
  • _XmlWriteElement (5): Neues Element einfügenArgument1 Name Argument2 Inhalt Das Element kann keine Kindelemente oder Attribute enthalten.
  • _XmlWriteAttribute (6): Attribut schreibenArgument1 Name Argument2 Wert
  • _XmlWriteDocType (7): DTD-Verweis einfügenArgument1 Name Argument2 Speicherort einer Public-DTD Argument3 Speicherort einer System-DTD
  • _XmlWritePI (8): Verarbeitungsanweisung einfügenArgument1 Ziel Argument2 Inhalt
  • _XmlWriteText (9): Text einfügenArgument1 Text
  • _XmlWriteCDATA (10): Daten einfügenArgument1 Daten
  • _XmlWriteComment (11): Kommentar einfügenArgument1 Kommentar
info

Die Zeichenketten werden im CONZEPT 16-Zeichensatz erwartet. Die Ausgabe erfolgt in der _XmlStartDocument unter Zeichensatzkodierung angegebenen Kodierung.

Wurde der Knoten erfolgreich geschrieben, wird _ErrOk zurückgegeben, andernfalls _ErrGeneric.

Beispiel:

// XmlWriter öffnen
tXmlWriter # XmlOpenWriter('C:\XML.xml', _XmlOpenWriterDefault);
if (tXmlWriter > 0)
{
// Kopf und Wurzelknoten schreiben
tXmlWriter->XmlWrite(_XmlStartDocument, '1.0', 'UTF-8', 'no');
tXmlWriter->XmlWrite(_XmlWriteDocType, 'Customers', '/customers.dtd', '');
tXmlWriter->XmlWrite(_XmlWritePI, 'xml-stylesheet', 'type="text/xsl" href="/customers.xsl"');
tXmlWriter->XmlWrite(_XmlStartElement, 'customers');

tXmlWriter->XmlWrite(_XmlWriteComment, 'Kunde 1');
tXmlWriter->XmlWrite(_XmlStartElement, 'customer', '');
tXmlWriter->XmlWrite(_XmlWriteAttribute, 'number', '1');
tXmlWriter->XmlWrite(_XmlEndElement);

tXmlWriter->XmlWrite(_XmlWriteComment, 'Kunde 42');
tXmlWriter->XmlWrite(_XmlStartElement, 'customer');
tXmlWriter->XmlWrite(_XmlWriteAttribute, 'number', '42');
tXmlWriter->XmlWrite(_XmlWriteElement, 'contact', 'Mrs. Miller');
tXmlWriter->XmlWrite(_XmlWriteElement, 'contact', 'Mr. Smith');
tXmlWriter->XmlWrite(_XmlEndElement);

tXmlWriter->XmlWrite(_XmlWriteComment, 'Kunde 4711');
tXmlWriter->XmlWrite(_XmlStartElement, 'customer');
tXmlWriter->XmlWrite(_XmlWriteAttribute, 'number', '4711');
tXmlWriter->XmlWrite(_XmlWriteElement, 'contact', 'Mrs. Jones');
tXmlWriter->XmlWrite(_XmlWriteElement, 'contact', 'Mr. Thompson');

// Alle offenen Ebenen schließen
tXmlWriter->XmlWrite(_XmlEndDocument);

// XmlWriter schließen
tXmlWriter->XmlClose();
}

Mögliche Laufzeitfehler:

  • _ErrHdlInvalid: Der Deskriptor (obj) ist kein gültiger XmlWriter-Deskriptor.
  • _ErrValueInvalid: Der angegebene Typ (int1) ist ungültig.
  • _ErrNoArgument: Mindestens eines der benötigten Argumente (alpha2 - alpha6) fehlt.