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