PHP Velho Oeste 2024

XMLWriter::writeAttribute

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

XMLWriter::writeAttributeÖznitelik yazar

Açıklama

Nesne yönelimli kullanım

writeAttribute ( string $isim , string $değer ) : bool

Yordamsal kullanım

xmlwriter_write_attribute ( resource $xmlwriter , string $isim , string $değer ) : bool

Bir özniteliği değeriyle birlikte yazar.

Değiştirgeler

xmlwriter

Sadece yordamsal kullanım için. xmlwriter_open_uri() veya xmlwriter_open_memory() çağrılarıyla elde edilen, üzerinde işlem yapılacak XMLWriter özkaynağı.

isim

Özniteliğin ismi.

değer

Özniteliğin değeri.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
9
Paul
7 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.
up
0
Jason Hughes
13 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.
To Top