使用simplexmlPHP读取xmlattribut导致双foreach循环失败


Double foreach loop failed by reading out xml attribut with simplexml PHP

我是通过PHP simplexml_load_file读取XML的初学者。我的问题是读出具有ID作为属性的单个元素。此外,我想用黑色回显所有类型(用HEX代码搜索:#000000,因为它在变体中甚至不是相同的id)。

请参阅下面的示例:

文件.xml

<products>
        <types>
           <name>Artikel</name>
           <description>blablabla</description>
           <variations>
             <variation id=2>
               <name>black</name>
               <colors>
                 <color index="1">#000000</color>
               </colors>
            </variation>
          <variations>
            <variation id=1>
              <name>white</name>
              <colors>
               <color index="2">#FFFFFF</color>
              </colors>
          </variation>
         </variations>
       </types>
       <types>
           <name>Artikel</name>
           <description>blablabla</description>
           <variations>
             <variation id=7>
               <name>black</name>
               <colors>
                 <color index="6">#000000</color>
               </colors>
            </variation>
          <variations>
            <variation id=90>
              <name>black</name>
              <colors>
               <color index="3">#000000</color>
              </colors>
          </variation>
         </variations>
       </types>
    </products>

使用PHP,我可以找到所有的:

<?php
    $products = simplexml_load_file(xml.file);
        /*echo '<pre>';
        print_r ($products); //all products
        echo '</pre>';*/
        foreach ($products as $types)
        {
            echo '<pre>';
            print_r ($types);
            echo '</pre>';
            foreach ($products->variation as $variation)
            {
                echo '<pre>';
                echo $variation;
                echo '</pre>';
            }
                        if (color == #00000)  /*I know this is wrong, it is just my base for solving*/
                        {
                                echo types;
                        }
        }
?>

代码PHP项目:

  <?php
    $productTypes = simplexml_load_file('http://api.spreadshirt.net/api/v1/shops/611779/productTypes?fullData=true');
        /*echo '<pre>';
        print_r ($productTypes);
        echo '</pre>';*/
        foreach ($productTypes as $productType)
        {
            /*echo '<pre>';
            print_r ($productType);
            echo '</pre>';*/
            foreach ($productType->appearances->appearance[0] as $appearances)
            {
                //echo $appearances. '</br>';
                foreach ($appearances->colors->color['#000000'] as $color)
                {
                    echo $color. '</br>';
                    if ($color == 'black');
                    {
                    echo $color;
                    }
                }
            }
        }
?>

试试它的工作原理

$products = simplexml_load_file('http://api.spreadshirt.net/api/v1/shops/611779/productTypes?fullData=true');    
        $allproducts = $products->productType;
        foreach ($allproducts as $types)
        {           
           $app = $types->appearances;
           $appearance = $app->appearance;
           $color = $appearance->colors;
           $colors = $color->color;
            foreach ($colors as $colornew)
            {
                if ($colornew == '#FFFFFF');
                    {
                    echo 'white<br>';
                    }
                if($colornew=='000000') //this is a black
                    {
                        echo $name =  $types->name;
                    echo $shortDescription = $types->shortDescription;
                     $price = $types->price;
                    //echo  $vatExcluded = $price['vatExcluded'];
                                            echo  $vatExcluded = $price->vatExcluded."<br>";
                    }               
            }
        }