我有以下XML:
<category-links>
<category-link id="2350">
<name locale="de">Wasserkocher</name>
</category-link>
</category-links>
我已经将它变成了一个使用SimpleXML的数组,结果如下:
[category-links] => SimpleXMLElement Object
(
[category-link] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 2350
)
[name] => Wasserkocher
)
)
我想输出以下内容:
<tr>
<td>category-link > id</td>
<td><?= $p->{'category-links'}->{'category-link'}->{'@attributes'}->id ?></td>
</tr>
<tr>
<td>category-link > name</td>
<td><?= $p->{'category-links'}->{'category-link'}->name ?></td>
</tr>
只有name
给出预期结果(Wasserkocher),而id
没有显示任何内容。
var_dump($p->{'category-links'}->{'category-link'}->{'@attributes'}->id)
给出NULL。
以各种方式用括号替换箭头并不会改变任何东西。
我想,我可以解决&#34;字符串替换的问题,删除数组中的@符号。
有没有办法输出ID而不采取这种相当笨拙的措施?
答案 0 :(得分:1)
不,访问属性的方法是使用->attributes()
方法:
<td><?= $p->{'category-links'}->{'category-link'}->attributes()->id; ?></td>