PHP SimpleXML, как установить атрибуты? - PullRequest
9 голосов
/ 03 марта 2010

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

<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 '

Ответы [ 3 ]

15 голосов
/ 03 марта 2010

Помните, ваш 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)

1 голос
/ 29 апреля 2010

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

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

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

0 голосов
/ 22 июля 2010
$xml[0]['name'] = "newname";

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

...