Как я могу изменить имя тега XML с помощью PHP / SimpleXML? - PullRequest
0 голосов
/ 14 сентября 2011

С SimpleXML можно добавлять / изменять / удалять атрибуты выбранного узла «на лету», набрав, например,

$child->addAttribute('n', $occ_order);

есть ли способ изменить имя элемента $ child? Я бы ожидал что-то вроде

$child->setName('newTagName');

но я не могу найти соответствующую функцию в API.

Заранее спасибо за подсказки!

Ответы [ 2 ]

1 голос
/ 01 июля 2012

Вы можете удалить его с помощью unset(), если точно знаете, где он находится, т. Е. $main->target будет удален как unset($main->target) и добавить его снова с addchild(), т. Е. $main->addchild(name, value).

1 голос
/ 14 сентября 2011

Из документов [1] похоже, что вы не можете. И было бы странно, если бы вы тоже могли - смена имени делает его другим / новым элементом. Что вы хотите сделать, это удалить этот элемент и добавить новый в том же месте. Однако, хотя есть метод addChild, он не выглядит как метод удаления. Так что, возможно, simpleXML здесь не тот инструмент.

Редактировать: Действительно, simpleXML не предоставляет метод удаления. Информацию о том, как это сделать, см. В этом ответе [2].

1 http://php.net/manual/en/book.simplexml.php

2 Удаление дочернего элемента с определенным атрибутом в SimpleXML для PHP

...