我遇到了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;
有没有人可以帮助我?
答案 0 :(得分:0)
我不明白为什么你通过强迫它进入数组迭代某些东西。您的问题的答案很短(但很糟糕)是: $ brandProperty =(string)$ allData [$ key] - &gt; property-&gt; attributes() - &gt; name;
好多了:按照Jerry的建议和RTM - 阅读精细的手册。手册和用户提供的注释包含您需要的所有信息以及更多信息。
SimpleXML本身实现迭代,使用foreach ($xml->children() as $node)
之类的东西来运行文档更容易。
希望有所帮助。