PHP SimpleXML, как установить атрибуты?

если у вас есть что-то вроде,

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

Как изменить атрибуты, например, hello id 2, на name="William"? Или заголовок привет привет ?

Большое спасибо за внимание, H'


person punkbit    schedule 03.03.2010    source источник


Ответы (3)


Помните, что ваш XML-документ должен иметь корневой элемент:

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

Чтобы сохранить файл, используйте asXML($filename).

person Gordon    schedule 03.03.2010

Если вы хотите установить атрибут корневого элемента с помощью simplexml, вы должны сделать это:

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

Однако для приведенного примера предыдущий постер верен; вам нужно добавить элемент верхнего уровня.

person Adam    schedule 29.04.2010

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

Я считаю, что это еще один способ редактирования XML-документа, который у вас есть.
Этот метод, который я использую, будет работать с предоставленным XML-файлом.
Он может получить доступ к корневому тегу в форме массива, как и в "первый" пример.
Это позволяет ему не спускаться по тегам.

person Dylan Witte    schedule 21.07.2010