A common use for XMLWriter::writeElement is processing data without rebuilding the operation manually. Writes an entire element containing text in one call.
What Is XMLWriter::writeElement in PHP?
Writes an entire element containing text in one call.
Syntax:
XMLWriter::writeElement($name, $content)
Parameters and Return Value
$name— The name of an attribute, element, or node.$content— Text or markup to write.
Check the returned value, including false when applicable, or handle exceptions for invalid input. The required XML/DOM extension must be installed.
Example 1: Basic Usage
This example demonstrates the main operation with a small, controlled input.
<?php
$xmlWriter = new XMLWriter();
$xmlWriter->openMemory();
$xmlWriter->startDocument("1.0", "UTF-8");
$xmlWriter->startElement("catalog");
$xmlWriter->writeElement("item", "Guide");
$xmlWriter->endElement();
echo $xmlWriter->outputMemory();
The result depends on the supplied data and the documented operation. Output is not shown as a fixed value when files, locales or runtime configuration can change it.
Example 2: Another Input
This example changes the input or surrounding setup to illustrate another behavior.
<?php
$xmlWriter = new XMLWriter();
$xmlWriter->openMemory();
$xmlWriter->startDocument("1.0", "UTF-8");
$xmlWriter->startElement("catalog");
$xmlWriter->writeElement("item", "Updated guide");
$xmlWriter->endElement();
echo $xmlWriter->outputMemory();
The result depends on the supplied data and the documented operation. Output is not shown as a fixed value when files, locales or runtime configuration can change it.
Practical Example
This application-style example shows a self-contained usage pattern and checks its result.
<?php
$xmlWriter = new XMLWriter();
$xmlWriter->openMemory();
$xmlWriter->startDocument("1.0", "UTF-8");
$xmlWriter->startElement("inventory");
$xmlWriter->writeElement("item", "Inventory item");
$xmlWriter->endElement();
echo $xmlWriter->outputMemory();
The result depends on the supplied data and the documented operation. Output is not shown as a fixed value when files, locales or runtime configuration can change it.
Important Behavior and Edge Cases
- Prefer text(), writeElement(), and writeAttribute() for escaped output. Never feed untrusted markup to writeRaw(). Ensure elements and documents are closed correctly.
- Use the intended input type and handle empty or malformed values explicitly.
- Where this API requires an extension, version, or file, document that dependency before using it in a real application.
Comparison With Related Functions
| Function or Method | When to Use It |
|---|---|
XMLWriter::writeElement | Writes an entire element containing text in one call. |
XMLWriter::startElement | Begins an XML element and leaves it open for attributes or content. |
Common Beginner Mistakes
| Mistake | Correct Approach |
|---|---|
| Using this API without checking the required input or extension | Prefer text(), writeElement(), and writeAttribute() for escaped output. Never feed untrusted markup to writeRaw(). Ensure elements and documents are closed correctly. |
| Leaving XML elements unfinished | Match startElement() with endElement(), then finalize or flush the document. |
| Inserting untrusted strings with writeRaw() | Prefer text(), writeElement() or writeAttribute() to escape the appropriate XML context. |
Key Takeaways
- Writes an entire element containing text in one call.
- Prefer text(), writeElement(), and writeAttribute() for escaped output. Never feed untrusted markup to writeRaw(). Ensure elements and documents are closed correctly.
- Test both the expected case and at least one failure or empty-input case before deployment.
Writes an entire element containing text in one call. Use it when the operation fits your input, output and validation requirements.