Добавить объект SimpleXMLElement в массив

У меня есть и массив объектов, как показано ниже. У меня возникли проблемы при добавлении в этот массив объектов, поскольку я продолжаю получать ошибку.
Вот как это происходит на данный момент:

SimpleXMLElement Object
(
[url] => Array
(
[0] => SimpleXMLElement Object
(
[loc] => http://jbsoftware.co.uk/
[lastmod] => 2015-02-02
[changefreq] => monthly
[priority] => 1.0
)
)
)

Теперь, чтобы добавить к концу этого я делаю следующее:

$note="<url>
<loc>{$actual_link}</loc>
<lastmod>{$date}</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
";
$sxe = new SimpleXMLElement($note);
$page[] = $sxe;

Что, в свою очередь, дает мне эту ошибку ….

Fatal error:  controller::generateSitemap() [<a href='controller.generatesitemap'>controller.generatesitemap</a>]: Cannot create unnamed attribute

Может кто-нибудь, пожалуйста, дайте мне знать, почему я не могу просто добавить это в конец текущего массива объектов?
Это действительно поставило меня в тупик.

2

Решение

$page это не массив (или объект-массив, который ничего не будет значить), это объект (экземпляр класса). Таким образом, вы не можете использовать методы массива с ним. Вы можете использовать только доступные методы класса simpleXMLElement.

Для ваших конкретных потребностей simpleXMLElement не предлагает никаких методов для добавления в качестве дочернего элемента другого экземпляра simpleXMLElement. Однако вы можете использовать addChild метод для построения элемента поддерева элементом:

$url = $page->addChild('url');
$loc = $url->addChild('loc', "{$actual_link}");
$lastmod = $url->addChild('lastmod', "{$date}");
...

$url, $loc а также $lastmod новые экземпляры simpleXMLElement.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]