1

我是通过 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;
                    }

                }
            }

        }
?>
4

1 回答 1

1

试试这个它工作正常

$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>";
                    }               

            }
        }
于 2013-08-07T12:42:35.433 回答