PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

SimpleXMLElement->addChild> <SimpleXML Functions
Last updated: Fri, 22 Aug 2008

view this page in

SimpleXMLElement->addAttribute

(No version information available, might be only in CVS)

SimpleXMLElement->addAttribute Adds an attribute to the SimpleXML element

Descripción

SimpleXMLElement
void addAttribute ( string $name , string $value [, string $namespace ] )

Adds an attribute to the SimpleXML element.

Lista de parámetros

name

The name of the attribute to add.

value

The value of the attribute.

namespace

If specified, the namespace to which the attribute belongs.

Valores retornados

No value is returned.

Ejemplos

Example #1 Add attributes and children to a SimpleXML element

<?php

include 'example.php';
 
$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type''documentary');

$movie $sxe->addChild('movie');
$movie->addChild('title''PHP2: More Parser Stories');
$movie->addChild('plot''This is all about the people who make it work.');

$characters $movie->addChild('characters');
$character  $characters->addChild('character');
$character->addChild('name''Mr. Parser');
$character->addChild('actor''John Doe');

$rating $movie->addChild('rating''5');
$rating->addAttribute('type''stars');
 
echo 
$sxe->asXML();

?>



SimpleXMLElement->addChild> <SimpleXML Functions
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
SimpleXMLElement->addAttribute
khishigbaatar at 2xcoding dot com
11-Nov-2008 06:44
simpleXML have only read/write methods. Then how to remove attributes in node?
There is a simpe way to remove attribute without DOM extension. Use unset();

Example:
if "samlpe.xml" contains
<?xml version="1.0"?>
<books>
    <book author="unknown">The Secret History of the Mongols</book>
    <book author="Jack Weatherford">Genghis Khan and the Making of the Modern World</book>
    <book author="David Morgan">The Mongols (The Peoples of Europe)</book>
    <book author="Stephen Turnbull">Mongol Warrior 1200-1350</book>
    <book author="Marco Polo">The Travels of Marco Polo</book>
    <book author="J. J. Saunders">The History of Mongol Conquests</book>
</books>

<?php
// load xml file
$xml = simplexml_load_file("sample.xml");

// remove first book's attribute
unset($xml->book[0][author]);

// write xml file
$xml->asXML("sample.xml");
?>

Now "sample.xml" is:
<?xml version="1.0"?>
<books>
    <book>The Secret History of the Mongols</book>
    <book author="Jack Weatherford">Genghis Khan and the Making of the Modern World</book>
    <book author="David Morgan">The Mongols (The Peoples of Europe)</book>
    <book author="Stephen Turnbull">Mongol Warrior 1200-1350</book>
    <book author="Marco Polo">The Travels of Marco Polo</book>
    <book author="J. J. Saunders">The History of Mongol Conquests</book>
</books>

That's it.
markvanstraten at gmail dot om
27-Oct-2008 02:13
Please note: currently this function does not return the object on which it is executed so function chaining is not possible.
cbrand at dodgeit dot com
20-Mar-2007 09:49
It may be helpful to note that the addAttribute method checks the length of the fields to determine whether or not they are empty.  In otherwords if you are trying to addElement("patent_holder", "") this will fail as the strlen is 0.

SimpleXMLElement->addChild> <SimpleXML Functions
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites