【问题标题】:Looping through simplexml_load_file results循环遍历 simplexml_load_file 结果
【发布时间】:2013-09-14 02:41:33
【问题描述】:

我正在尝试使用 simplexml_load_file 将我的 xml 文件中的信息转换为变量。 xml文件的结构是:

<root>
    <item>
        <sku></sku>
        <weight></weight>
        <Price></Price>
        <media>
            <images></images>
            <images></images>
            <images></images>
        </media>
        <short_description>
            <![CDATA[]]>
        </short_description>
        <description>
            <![CDATA[]]>
        </description>
    </item>
    <item>
        <sku></sku>
        <weight></weight>
        <Price></Price>
        <media>
            <images></images>
            <images></images>
            <images></images>
        </media>
        <short_description>
            <![CDATA[]]>
        </short_description>
        <description>
            <![CDATA[]]>
        </description>
    </item>
</root>

这是我到目前为止所做的,但它只获取每个项目的第一张图片,而不是所有图片。除此之外,它似乎工作正常。

$xml_url="accessories.xml";
$xml = simplexml_load_file($xml_url);
foreach($xml->item as $_item){
    echo $_item->sku . " - ";
    echo $_item->weight . " - ";
    echo $_item->Price . " <br/>";
    //echo $_item->short_description . " <br/><br/>";
    foreach($_item->media as $_media){
        echo $_media->images . "<br/>";
    }
}

我的 php 和 xml 技能非常有限,所以如果您能提供任何帮助,我将不胜感激。
谢谢

【问题讨论】:

    标签: php xml simplexml


    【解决方案1】:

    尝试以下循环:

    foreach($_item->media->children() as $_img){
        echo $_img . "<br/>";
    }
    

    这将节省您循环两次。

    【讨论】:

      【解决方案2】:

      你应该像下面这样使用foreach

      foreach($_item->media->images as $_media){
          echo $_media . "<br/>";
      }
      

      您会看到为什么下面转储了media 数据:

      var_dump($_item->media);
      
      object(SimpleXMLElement)[5]
        public 'images' => 
          array (size=3)
            0 => string '1' (length=1)
            1 => string '2' (length=1)
            2 => string '3' (length=1)
      

      【讨论】:

        猜你喜欢
        • 2019-02-18
        • 1970-01-01
        • 2018-08-09
        • 2015-10-05
        • 1970-01-01
        • 2016-06-07
        • 2021-09-06
        • 2011-01-03
        • 2010-12-17
        相关资源
        最近更新 更多