我有以下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。
以各种方式用括号代替箭头不会改变任何事情。
我想,我可以用字符串替换来"解决"这个问题,删除数组中的@符号。
有没有什么方法可以在不进行这种相当笨拙的测量的情况下输出ID?
否,访问属性的方法是使用->attributes()
方法:
<td><?= $p->{'category-links'}->{'category-link'}->attributes()->id; ?></td>
样本输出