【问题标题】:SimpleXML foreach doesn't workSimpleXML foreach 不起作用
【发布时间】:2017-08-09 17:52:01
【问题描述】:

我有以下 XML (source.xml):

<SHOP>
<SHOPITEM>
<ITEM_ID>3664</ITEM_ID>
<PRODUCT>Product n.1</PRODUCT>
<PRODUCT_NAME>Product n.1</PRODUCT_NAME>
<VARIANT_NAME/>
<MANUFACTURER>Jeffrey</MANUFACTURER>
<CODE>ABC123</CODE>
<EAN>123456789</EAN>
<DESCRIPTION>
Maybe later...
</DESCRIPTION>
<DESCRIPTION_HTML/>
<CATEGORIES>
<CATEGORY id="1" parent_id="0">ABx</CATEGORY>
</CATEGORIES>
</SHOPITEM>
<SHOPITEM>
...etc

以下代码:

$xml = simplexml_load_file("source.xml", NULL, LIBXML_NOCDATA);


foreach ($xml->shopitem as $shopitem) {

  echo  $shopitem->item_id;
}

不幸的是,它不起作用。即使我把 echo 'a';进入foreach循环,什么也没有出现。 XML 有效。尝试 var_dump($xml) 并且 XML 看起来已正确加载。怎么了?谢谢。

【问题讨论】:

  • XML 区分大小写。
  • 非常感谢!
  • 旁注:你不需要LIBXML_NOCDATA;它唯一能做的就是让print_r 和其他调试功能的输出稍微清晰一些,在一些罕见的情况下;使用echo 或将值放入变量时,它不会改变实际行为。

标签: php xml foreach simplexml


【解决方案1】:
$xml = simplexml_load_file("source.xml", NULL, LIBXML_NOCDATA);

foreach ($xml->SHOPITEM as $shopitem) {

  echo  $shopitem->ITEM_ID;

}

【讨论】:

  • 非常感谢!经过 2 小时的尝试,我很高兴看到它可以正常工作:)))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 2018-08-22
  • 2016-05-23
  • 1970-01-01
相关资源
最近更新 更多