Start · Sprachen · PHP · Referenz · xmlwriter_start_comment

xmlwriter_start_comment

Funktion

Beginnt einen XML-Kommentar (<code>&lt;!--</code>) im XMLWriter-Ausgabestrom.

seit PHP 5.1.2 Kategorie: xml

Signatur

xmlwriter_start_comment(XMLWriter $writer): bool

Beschreibung

xmlwriter_start_comment() öffnet einen XML-Kommentar im aktuellen Ausgabestrom des XMLWriter-Objekts. Nach dem Aufruf dieser Funktion kann mit xmlwriter_text() der Kommentarinhalt geschrieben werden. Der Kommentar muss anschließend mit xmlwriter_end_comment() geschlossen werden.

Diese Funktion ist nützlich, wenn Kommentare mit mehrteiligem oder dynamisch erzeugtem Inhalt in ein XML-Dokument eingebettet werden sollen. Für einfache, einzeilige Kommentare mit festem Inhalt kann alternativ xmlwriter_write_comment() verwendet werden, das Öffnen, Inhalt und Schließen in einem einzigen Aufruf erledigt.

Die prozedurale Version dieser Funktion erwartet als ersten Parameter ein XMLWriter-Objekt (seit PHP 8.0 ein echtes Objekt, zuvor eine Ressource). In der objektorientierten Schreibweise steht die Methode als $writer->startComment() zur Verfügung.

Parameter

Name Typ Default Beschreibung
$writer Pflicht XMLWriter Das XMLWriter-Objekt, in dessen Ausgabestrom der Kommentar begonnen werden soll.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler (z. B. wenn kein gültiger Schreibkontext vorhanden ist).

Beispiele

Einfachen Kommentar mit xmlwriter_start_comment schreiben

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->startDocument('1.0', 'UTF-8');

$writer->startElement('root');

// Kommentar manuell öffnen, Inhalt schreiben, schließen
$writer->startComment();
$writer->text(' Dies ist ein XML-Kommentar ');
$writer->endComment();

$writer->startElement('item');
$writer->text('Inhalt');
$writer->endElement();

$writer->endElement(); // root
$writer->endDocument();

echo $writer->outputMemory();
<?xml version="1.0" encoding="UTF-8"?> <root> <!-- Dies ist ein XML-Kommentar --> <item>Inhalt</item> </root>

Dynamisch erzeugten Kommentar einfügen (prozedural)

<?php
$writer = xmlwriter_open_memory();
xmlwriter_set_indent($writer, true);
xmlwriter_start_document($writer, '1.0', 'UTF-8');

xmlwriter_start_element($writer, 'config');

$timestamp = date('Y-m-d H:i:s');
xmlwriter_start_comment($writer);
xmlwriter_text($writer, ' Generiert am: ' . $timestamp . ' ');
xmlwriter_end_comment($writer);

xmlwriter_start_element($writer, 'setting');
xmlwriter_text($writer, 'value');
xmlwriter_end_element($writer);

xmlwriter_end_element($writer); // config
xmlwriter_end_document($writer);

echo xmlwriter_output_memory($writer);
<?xml version="1.0" encoding="UTF-8"?> <config> <!-- Generiert am: 2024-01-15 10:30:00 --> <setting>value</setting> </config>

// Wichtig · Fallstricke

Achtung: XML-Kommentare dürfen die Zeichenfolge -- (zwei aufeinanderfolgende Bindestriche) nicht im Inhalt enthalten, da dies zu ungültigem XML führt. xmlwriter_text() maskiert diesen Fall nicht automatisch – die Eingabe muss daher vorher geprüft werden.

Ab PHP 8.0 ist der Parameter $writer immer ein XMLWriter-Objekt; in älteren Versionen handelte es sich um eine Ressource. Die prozedurale und die OOP-API sind funktional gleichwertig.