简单的PHP SimpleXML问题

2022-04-13 00:00:00 php simplexml

我的脑部阻塞非常严重。

我的XML文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <fruits>
    <item>Apple</item>
    <item>Orange</item>
    <item>Banana</item>
  </fruits>
  <vegetables>
    <item>Lettuce</item>
    <item>Carrot</item>
  </vegetables>
</data>

我很抱歉使用SimpleXML来检索包含"Apple,Orange,Banana"的数组。我使用的代码如下:

$xml=simplexml_load_file('food.xml');

foreach($xml as $fruits=>$item) {
  $foodlist[] = $item;
}

print_r($foodlist); // Should display list of fruits.

但是水果列表没有存储到数组中。我做错了什么?

非常感谢。


解决方案

这样如何:

foreach($xml->fruits->item as $item) {
    //$item has to be cast to a string otherwise it will be a SimpleXML element
    $foodlist[] = (string) $item;
}
print_r($foodlist);

我认为这应该会为您提供您正在寻找的内容,即一个包含作为Fruits节点的子节点的每个Item节点的文本值的数组。

相关文章