• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • XMLWriter::writeAttribute()

    (PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

    Write full attribute

    说明

    面向对象风格
    XMLWriter::writeAttribute(string $name,string $value): bool
    过程化风格
    xmlwriter_write_attribute(resource $xmlwriter,string $name,string $value): bool

    Writes a full attribute.

    参数

    $xmlwriter

    仅用于过程调用。被修改的 XMLWriter resource。此资源来自于对xmlwriter_open_uri()或xmlwriter_open_memory()的调用。

    $name

    The name of the attribute.

    $value

    The value of the attribute.

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    参见

    • XMLWriter::writeAttributeNs() Write full namespaced attribute
    • XMLWriter::startAttribute() Create start attribute
    • XMLWriter::startAttributeNs() Create start namespaced attribute
    • XMLWriter::endAttribute() End attribute
    If you intermix writing sub-elements and attributes, any attempt to write attributes after the first sub-element will fail and return false: 
    <?php 
    $xml = new XMLWriter();
    $xml->openMemory();
    $xml->startElement('element');
    $xml->writeAttribute('attr1', '0');
    $xml->writeElement('subelem', '0');
    var_dump($xml->writeAttribute('attr2', '0'));
    $xml->endElement();
    echo $xml->flush();
    ?>
    Outputs: 
    bool(false)
    <element attr1="0"><subelem>0</subelem></element>
    This is because this is a forward-only writer and the start tags are already finished. There is no going back to add more attributes later, there is no place to put attr2. This is exactly how it is supposed to work.
    If you intermix writing sub-elements and attributes, any attributes that are written after the first sub-element are ignored/discarded:
    <?php
    $xml->startElement('element');
     $xml->writeAttribute('attr1', 0);
     $xml->writeElement('subelem', 0);
     $xml->writeAttribute('attr2', 0);
    $xml->endElement();
    ?>
    Outputs:
    <element attr1=0>
     <subelem>0</subelem>
    </element>
    This is stupid, but the way it works as of PHP 5.2.4.