【问题标题】:Simple xml doesnt support for loop into foreach简单的 xml 不支持 for 循环进入 foreach
【发布时间】:2014-02-16 15:55:44
【问题描述】:

我有以下读取 XML 的脚本。但它在 for 循环之后停止。如果我删除循环它运行完美。

我做错了什么或者我可以通过其他方式实现吗?

脚本

$xml=simplexml_load_file("test.xml");

foreach($xml->product as $child){
    echo 'Title:'.$child->name.'<br>';//title
    echo 'Price:'.$child->price.'<br>';//title
    echo 'image:'.$child->images->image.'<br>';//image
    echo 'category:'.$child->categories->category.'<br>';//categorie

    foreach( $child->properties->property as $property ){            
        if( $child->properties->property->attributes()->name =='brand'){
            echo $child->properties->property->value.'<br>';
        }
    }
}

XML

<product ID="000000000000052993">
    <name> Title product</name>
    <price currency="EUR">29.99</price>
    <URL>http://www.url.nl</URL>
    <images>
        <image>product/5/2/52993_2.jpg</image>
    </images>
    <description><![CDATA[description.]]>
    </description>
    <categories>
        <category>catt</category>
    </categories>
    <properties>
        <property name="brand">
            <value>PHILIPS</value>
        </property>
        <property name="deliveryTime">
            <value>5</value>
        </property>
        <property name="User1">
        </property>
        <property name="User2">
        </property>
        <property name="shipping_cost">
            <value>0.00</value>
        </property>
        <property name="User3">
        </property>
        <property name="EAN">
            <value>8727900831733</value>
        </property>
    </properties>
    <variations/>
</product>

【问题讨论】:

  • 把它放到一个数组中应该可以工作

标签: php for-loop foreach simplexml


【解决方案1】:

让它成为另一个 foreach 循环:

foreach( $child->properties as $property ){
    if( $property->attributes()->name == 'brand'){
        echo $property->value;
    }
    if( $property->attributes()->name == 'deliveryTime'){
        echo $property->value;
    }
}

【讨论】:

  • 谢谢,但我想过滤 $child->properties->property[$x]->attributes()->name ,这也可以用 foreach 吗?
  • 是的。你想达到什么目的,我会把代码提供给你。
  • 我想像 for 循环一样过滤品牌和交付时间
  • 别担心,巴斯 - 我很高兴能帮上忙。
猜你喜欢
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多