XMLWriter::writeAttribute
xmlwriter_write_attribute
(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)
XMLWriter::writeAttribute -- xmlwriter_write_attribute — Write full attribute
说明
面向对象风格
XMLWriter::writeAttribute
( string
$name
, string $value
) : bool过程化风格
xmlwriter_write_attribute
( resource
$xmlwriter
, string $name
, string $value
) : boolWrites 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

User Contributed Notes 2 notes
Paul ¶
2 years ago
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.
Jason Hughes ¶
8 years ago
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.
备份地址:http://www.lvesu.com/blog/php/function.xmlwriter-write-attribute.php