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

search for in the

SimpleXMLElement::children> <SimpleXMLElement::asXML
Last updated: Fri, 27 Aug 2010

view this page in

SimpleXMLElement::attributes

(PHP 5 >= 5.0.1)

SimpleXMLElement::attributesIdentifie les attributs d'un élément

Description

SimpleXMLElement SimpleXMLElement::attributes ([ string $ns [, bool $is_prefix ]] )

Fournit les attributs et les valeurs définies dans une balise XML.

Note: SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms optionnel pour les attributs récupérés

is_prefix

Par défaut, vaut FALSE

Valeurs de retour

Exemples

Exemple #1 Interprétation d'une chaîne XML

<?php
$string 
= <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml simplexml_load_string($string);
foreach(
$xml->foo[0]->attributes() as $a => $b) {
    echo 
$a,'="',$b,"\"\n";
}
?>

L'exemple ci-dessus va afficher :

name="one"
game="lonely"



SimpleXMLElement::children> <SimpleXMLElement::asXML
Last updated: Fri, 27 Aug 2010
 
add a note add a note User Contributed Notes
SimpleXMLElement::attributes
alan at performantsystems dot com
24-May-2010 05:26
So lets say you have database type data in an XML string called $xmlstring with the key or item ID as an XML Attribute and all content data as regular XML Elements, as above. SimpleXML processes the Attributes as an array, so we can play along and push the Attributes into an array. Then we can get the value of any specific Attribute we want by addressing it by name, such as "ID".

Considering this data:

<?xml version="1.0" encoding="utf-8"?>
<data>
   <item ID="30001">
      <Company>Navarro Corp.</Company>
   </item>
   <item ID="30002">
      <Company>Performant Systems</Company>
   </item>
   <item ID="30003">
      <Company>Digital Showcase</Company>
   </item>
</data>

Example of listing both the ID Attribute and Company Element values:
 
<?php
$xmlObject
= new SimpleXMLElement($xmlstring);
foreach (
$xmlObject->children() as $node) {
       
$arr = $node->attributes();   // returns an array
       
print ("ID=".$arr["ID"]);     // get the value of this attribute
       
print ("  Company=".$node->Company);
        print (
"<p><hr>");
}
?>
Xeoncross
11-Apr-2010 02:46
It is really simple to access attributes using array form. However, you must convert them to strings or ints if you plan on passing the values to functions.

<?php
SimpleXMLElement Object
(
    [@
attributes] => Array
        (
            [
id] => 55555
       
)

    [
text] => "hello world"
)
?>

Then using a function

<?php
function xml_attribute($object, $attribute)
{
    if(isset(
$object[$attribute]))
        return (string)
$object[$attribute];
}
?>

I can get the "id" like this

<?php
print xml_attribute($xml, 'id'); //prints "55555"
?>
gillllberg at gmail dot com
04-Nov-2009 10:21
To get an attribute in the node, use node->attributes()->attributeName
skerr at mojavi dot org
10-Dec-2004 06:55
You can also access the node as an array to get attributes:

<?php

$xml
= simplexml_load_file('file.xml');

echo
'Attribute: ' . $xml['attribute'];

?>
inge at elektronaut dot no
26-May-2004 05:53
here's a simple function to get an attribute by name, based on the example

<?php
function findAttribute($object, $attribute) {
  foreach(
$object->attributes() as $a => $b) {
    if (
$a == $attribute) {
     
$return = $b;
    }
  }
  if(
$return) {
    return
$return;
  }
}
?>

SimpleXMLElement::children> <SimpleXMLElement::asXML
Last updated: Fri, 27 Aug 2010
 
 
show source | credits | sitemap | contact | advertising | mirror sites