XMLWriter::writeAttribute
(No version information available, might be only in CVS)
XMLWriter::writeAttribute — Write full attribute
Описание
Object oriented style:
XMLWriter
bool writeAttribute
( string $name
, string $value
)
Procedural style:
bool xmlwriter_write_attribute
( resource $xmlwriter
, string $name
, string $value
)
Writes a full attribute.
Список параметров
- xmlwriter
-
Only for procedural calls. The XMLWriter resource that is being modified. This resource comes from a call to xmlwriter_open_uri() or xmlwriter_open_memory().
- name
-
The name of the attribute.
- value
-
The value of the attribute.
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
- XMLWriter::endAttribute
- XMLWriter::endCData
- XMLWriter::endComment
- XMLWriter::endDocument
- XMLWriter::endDTDAttlist
- XMLWriter::endDTDElement
- XMLWriter::endDTDEntity
- XMLWriter::endDTD
- XMLWriter::endElement
- XMLWriter::endPI
- XMLWriter::flush
- XMLWriter::fullEndElement
- XMLWriter::openMemory
- XMLWriter::openURI
- XMLWriter::outputMemory
- XMLWriter::setIndentString
- XMLWriter::setIndent
- XMLWriter::startAttributeNS
- XMLWriter::startAttribute
- XMLWriter::startCData
- XMLWriter::startComment
- XMLWriter::startDocument
- XMLWriter::startDTDAttlist
- XMLWriter::startDTDElement
- XMLWriter::startDTDEntity
- XMLWriter::startDTD
- XMLWriter::startElementNS
- XMLWriter::startElement
- XMLWriter::startPI
- XMLWriter::text
- XMLWriter::writeAttributeNS
- XMLWriter::writeAttribute
- XMLWriter::writeCData
- XMLWriter::writeComment
- XMLWriter::writeDTDAttlist
- XMLWriter::writeDTDElement
- XMLWriter::writeDTDEntity
- XMLWriter::writeDTD
- XMLWriter::writeElementNS
- XMLWriter::writeElement
- XMLWriter::writePI
- XMLWriter::writeRaw
Коментарии
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.
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.