使用SimpleXML计算xml元素/节点

时间:2015-02-06 23:41:16

标签: php xml simplexml

这可能是重复的,但到目前为止我没有发现任何有用的东西。

我正在尝试使用nodes/childs计算XMLsimplexml文件。

我试过了。

$xml = simplexml_load_file("./file.xml");
echo count($xml->rss->channel->item);

echo count($xml->item);

但只输出0

这里是XML

的快照
<?xml version="1.0"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <item>
      <title>PUDRA Pudra Ceket Ceket</title>
      <link>http://www.trendyol.com//Pudra-Ceket-IW6140005046/UrunDetay/31066/9188683?</link>
       <description>36 pudra pudra ceket ıw6140005046 ipekyol ceket kadın</description>
       <g:urunid>1423905</g:urunid>
       <g:id>1423905_14</g:id>
    </item>
    <item>
        ....
    </item>

1 个答案:

答案 0 :(得分:2)

这应该适合你:

echo count($xml->channel->item);

修改

为什么你必须这样做?因为表单simplexml_load_file()会得到这样的结构(print_r($xml);):

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [version] => 2.0
        )

    [channel] => SimpleXMLElement Object
        (
            [item] => Array
                (

由于这种结构,你必须像我说的那样访问对象(上图)。