2015-02-09 186 views
2

我拥有和对象数组,如下所示。我无法添加到此对象数组,因为我不断收到错误。 这里是如何在当下:将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 

任何人都可以请让我知道为什么我不能简单地将其添加到当前对象数组的末尾? 这一个真的让我难住。

+0

SimpleXMLElement对象_不是数组_,它们的行为就像数组_在某些方面_。 – CBroe 2015-02-09 13:42:38

回答

1

$page不是一个数组(或一个数组对象,它不会意味着什么),它是一个对象(类的一个实例)。所以你不能使用它的数组方法。您只能使用available simpleXMLElement class methods

为了您的特殊需要,simpleXMLElement不提供任何方法将其他simpleXMLElement实例作为子项追加。但是你可以用addChild方法,通过元素打造的子树元素:

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

$url$loc$lastmod是新的SimpleXMLElement实例。

+0

正是我所需要的,谢谢,完美的作品 – jburley89 2015-02-09 13:58:13