SimpleXMLElement 对象 [英] SimpleXMLElement Object

查看:43
本文介绍了SimpleXMLElement 对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我做 print_r($nodes); 我得到:

Array (
  [0] => SimpleXMLElement Object (
    [kategoria_6] => 1
    [opis_6] => 1
    [img] => slides/slide0.jpg
  )
  [1] => SimpleXMLElement Object (
    [kategoria_6] => 2
    [opis_6] => 2
    [img] => slides/slide1.jpg
  )
  [2] => SimpleXMLElement Object (
    [kategoria_6] => 3
    [opis_6] => 3
    [img] => slides/slide4.jpg
  )
  [3] => SimpleXMLElement Object (
    [kategoria_6] => 4
    [opis_6] => 4
    [img] => slides/slide3.jpg
  )
  [4] => SimpleXMLElement Object (
    [kategoria_6] => 7
    [opis_6] => 7
    [img] => slides/slide2.jpg
  )
)

现在在这种情况下,我不能这样做:

And now in this case, I can't do this:

$nodes->asXML("c:\\aaa.xml");

因为这是一个数组,我可以做 f.ex:

because this is an array i could do f.ex:

$nodes[1]->asXML("c:\\aaa.xml");

但我只会得到一个元素.我需要获取所有这些数组,或者更好地将其更改为:

but I'll get only one element. I need to get all of this array, or better change it to this:

SimpleXMLElement Object (
  [item] => Array (
    [0] => SimpleXMLElement Object (
      [kategoria_6] => 1
      [opis_6] => 1
      [img] => slides/slide0.jpg
    )
    [1] => SimpleXMLElement Object (
      [kategoria_6] => 2
      [opis_6] => 2
      [img] => slides/slide1.jpg
    )
    [2] => SimpleXMLElement Object (
      [kategoria_6] => 3
      [opis_6] => 3
      [img] => slides/slide4.jpg
    )
    [3] => SimpleXMLElement Object (
      [kategoria_6] => 4
      [opis_6] => 4
      [img] => slides/slide3.jpg
    )
    [4] => SimpleXMLElement Object (
      [kategoria_6] => 7
      [opis_6] => 7
      [img] => slides/slide2.jpg
    )
  )
)

怎么解决?

推荐答案

不幸的是,SimpleXML 本身并不能轻松地让您做您想做的事.幸运的是,DOM 确实(已修复):

Unfortunately, SimpleXML by itself does not easily allow you to do what you want to do. Luckily, DOM does (FIXED):

// Create a new DOMDocument
$dom = new DOMDocument('1.0', 'utf-8');

// Create the DocumentElement
$documentElement = $dom->appendChild($dom->createElement('objects'));

// Loop the SimpleXML elements and import them into DOM
foreach ($val as $element) {
  $documentElement->appendChild($dom->importNode(dom_import_simplexml($element), TRUE));
}

// Save to file
$dom->save("c:\\aaa.xml");

这篇关于SimpleXMLElement 对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆