XML - simplexml_load_file - foreach
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML - simplexml_load_file - foreach相关的知识,希望对你有一定的参考价值。
我需要在我的项目中从xml中呼应xml数据。
我使用simplexml_load_file
我有
<group>
<admin>
<id>605</id>
</admin>
<members>
<id>2154</id>
<id>2256</id>
<id>3179</id>
</menbers>
</group>
<group>
<admin>
....
</admin>
<members>
...
...
</members>
</group>
我的代码是
$soubor="platebniudaje.xml";
$xml = simplexml_load_file($soubor);
foreach ($xml->group as $group)
echo $group->admin->id . "<br>";
foreach ($group->members as $members)
echo $members->id . "<br>";
我的输出是
605
2154
但我需要
605
2154
2256
3179
你能帮我吗?哪里出错了?
答案
我不确定这是否是你要找的东西,但根据你问题中的xml片段,这个。
foreach($xml->xpath('//group//id') as $node)
echo $node, php_EOL;
应该是这样的
605
2154
2256
3179
另一答案
你可以有一个或多个id,所以你也可以循环这些。
请注意,在xml中有一个类型 </menbers>
foreach ($xml->group as $group)
echo $group->admin->id . PHP_EOL;
foreach ($group->members as $member)
foreach($member->id as $id)
echo $id . PHP_EOL;
或更短的版本,如果成员只发生一次,如所指出。@Nigel Ren
foreach ($xml->group as $group)
echo $group->admin->id . PHP_EOL;
foreach ($group->members->id as $id)
echo $id . PHP_EOL;
产量
605
2154
2256
3179
以上是关于XML - simplexml_load_file - foreach的主要内容,如果未能解决你的问题,请参考以下文章
XML - simplexml_load_file - foreach
PHP:simplexml_load_file 从使用 UTF-8 编码的 XML 文件中获取奇怪的字符
simplexml_load_file 通过 url 读取远程 xml,由对等方重置连接
simplexml_load_file():I/O 警告:未能加载外部实体“/user-bundle/Resources/config/doctrine/model/User.orm.xml