• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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 &amp;, < becomes &lt; 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 &amp; You".