2010-03-03 6 views
8

si vous avez quelque chose comme,PHP SimpleXML, comment définir les attributs?

<hello id="1" name="myName1"> 
<anotherTag title="Hello"> 
</anotherTag> 
</hello> 
<hello id="2" name="myName2"> 
<anotherTag title="Hi"> 
</anotherTag> 
</hello> 

Comment changer les attributs, par exemple, bonjour id 2, pour name = "William"? Ou le titre salut à bonjour?

Merci beaucoup pour votre atention, H »

Répondre

15

Rappelez-vous, votre document XML doit avoir un élément racine:

$xml = simplexml_load_string("<root>$string</root>"); 
$xml->hello[1]['name'] = 'John Doe'; 
$xml->hello[1]->anotherTag['title'] = 'Hello'; 
echo $xml->asXml(); 

Pour enregistrer l'utilisation du fichier asXML($filename)

1

Si vous voulez Pour définir un attribut sur l'élément racine à l'aide de simplexml, procédez comme suit:

$xml['name'] = "william"; 

Cependant, pour l'exemple indiqué, l'affiche précédente est correcte; vous devez ajouter un élément de premier niveau.

0
$xml[0]['name'] = "newname"; 

Je crois que c'est une autre façon d'éditer le document XML que vous avez là.
Cette méthode que j'utilise fonctionnera avec le fichier XML fourni.
Il peut accéder à la balise racine sous forme de tableau comme dans le premier exemple.
Cela lui permet de ne pas avoir à descendre dans les tags.