XMLWriter::writeElement()
(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)
Write full element tag
说明
面向对象风格
XMLWriter::writeElement(string $name[,string $content]): bool
过程化风格
xmlwriter_write_element(resource $xmlwriter,string $name[,string $content]): bool
Writes a full element tag.
参数
- $xmlwriter
仅用于过程调用。被修改的 XMLWriter resource。此资源来自于对xmlwriter_open_uri()或xmlwriter_open_memory()的调用。
- $name
The element name.
- $content
The element contents.
返回值
成功时返回TRUE,或者在失败时返回FALSE。
更新日志
| 版本 | 说明 |
|---|---|
| 5.2.3 | The$contentparameter became optional. |
参见
- XMLWriter::startElement() Create start element tag
- XMLWriter::endElement() End current element
- XMLWriter::writeElementNs() Write full namespaced element tag
The function XMLWriter::writeElement is used to write an element (i.e. a XML tag, an [optional] content, and a closing XML tag) in one line without sub-elements:
<?php
$oXMLout = new XMLWriter();
$oXMLout->openMemory();
$oXMLout->writeElement("quantity", 8);
$oXMLout->writeElement("price_per_quantity", 110);
print $oXMLout->outputMemory();
// produces:
// <quantity>8</quantity>
// <price_per_quantity>110</price_per_quantity>
?>
whereas if you want to include sub-elements you have to use the XMLWriter::startElement / XMLWriter::endElement pair:
<?php
$oXMLout = new XMLWriter();
$oXMLout->openMemory();
$oXMLout->startElement("item");
$oXMLout->writeElement("quantity", 8);
$oXMLout->writeElement("price_per_quantity", 110);
$oXMLout->endElement();
print $oXMLout->outputMemory();
// produces:
// <item>
// <quantity>8</quantity>
// <price_per_quantity>110</price_per_quantity>
// </item>
?>
Please note that XMLWriter::writeElement will automatically sanitize the content passed as second parameter, so & becomes &, < becomes < and so on. If you want to input markup directly into an element without validating it, you should use XMLWriter::writeRaw, which writes the contents as is, without any sanitizing.
Quick note - writeElement also seems to decode any HTML entities during the write. For example, if you pass it "Me & You", it will write the output as "Me & You".
