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.