在PHP中读取XML属性

时间:2013-02-05 19:01:44

标签: php xml properties

我遇到了PHP和XML的问题。我有一个XML数据源,我想导入到数据库。大多数值都工作正常,但属性不起作用。

我尝试使用$brand = $allData[$key]->property->brand->value;选择'品牌'属性,但它不起作用。

这是读取data.xml的PHP。代码来之后是XML。

$xml = simplexml_load_file("data.xml");
foreach($xml->children() as $child)
{ 
$allData[] = $child;
}


foreach($allData as $key=>$value)
{
$naam = $allData[$key]->name;
$image = $allData[$key]->images->image;

}

--- XML代码的一部分----

<images>
<image>afbeelding.jpg</image>
</images>
<description>beschrijving</description>
<categories>
<category path="categorie"> Categorie </category>
</categories>

<properties>
<property name="brand">
<value>Merk</value>
</property>

我可以很容易地获得描述和图像标记。但该品牌不起作用。

$brand = $allData[$key]->property->brand->value;

有没有人可以帮助我?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你通过强迫它进入数组迭代某些东西。您的问题的答案很短(但很糟糕)是: $ brandProperty =(string)$ allData [$ key] - &gt; property-&gt; attributes() - &gt; name;

好多了:按照Jerry的建议和RTM - 阅读精细的手册。手册和用户提供的注释包含您需要的所有信息以及更多信息。 SimpleXML本身实现迭代,使用foreach ($xml->children() as $node)之类的东西来运行文档更容易。

希望有所帮助。