在PHP中,如何将XML文件解析为数组并检索具有特定属性的子级的所有子级?
我的XML文件如下:在PHP中,如何将XML文件解析为数组并检索具有特定属性的子级的所有子级?,php,json,xml,simplexml,Php,Json,Xml,Simplexml,我的XML文件如下:agents.XML <?xml version="1.0" encoding="UTF-8"?> <agents> <agent id="1"> <aname>pi1</aname> <alive>0</alive> <scenarios>1,2,3</scenarios> </agent> <agent id="
agents.XML
<?xml version="1.0" encoding="UTF-8"?>
<agents>
<agent id="1">
<aname>pi1</aname>
<alive>0</alive>
<scenarios>1,2,3</scenarios>
</agent>
<agent id="2">
<aname>pi2</aname>
<alive>1</alive>
<scenarios>4,5,6</scenarios>
</agent>
</agents>
但我知道,如果XML是无序的,比如:
<?xml version="1.0" encoding="UTF-8"?>
<agents>
<agent id="2">
<aname>pi2</aname>
<alive>1</alive>
<scenarios>4,5,6</scenarios>
</agent>
<agent id="1">
<aname>pi1</aname>
<alive>0</alive>
<scenarios>1,2,3</scenarios>
</agent>
</agents>
pi2
1.
4,5,6
pi1
0
1,2,3
这不是很可靠
谢谢你的建议 试试看
$str = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<agents>
<agent id="1">
<aname>pi1</aname>
<alive>0</alive>
<scenarios>1,2,3</scenarios>
</agent>
<agent id="2">
<aname>pi2</aname>
<alive>1</alive>
<scenarios>4,5,6</scenarios>
</agent>
</agents>
XML;
$xml = new SimpleXMLElement($str);
foreach($xml->agent as $agent)
{
var_dump($agent);
echo "<hr>";
}
$str=$agents\u xml=simplexml\u load\u文件(“//agents.xml”);foreach($agents_xml->agent as$agent){if($agent['id']==id){print_r($agent);}}
成功了。谢谢@如果你觉得我的答案有用,请接受。
<?xml version="1.0" encoding="UTF-8"?>
<agents>
<agent id="2">
<aname>pi2</aname>
<alive>1</alive>
<scenarios>4,5,6</scenarios>
</agent>
<agent id="1">
<aname>pi1</aname>
<alive>0</alive>
<scenarios>1,2,3</scenarios>
</agent>
</agents>
$str = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<agents>
<agent id="1">
<aname>pi1</aname>
<alive>0</alive>
<scenarios>1,2,3</scenarios>
</agent>
<agent id="2">
<aname>pi2</aname>
<alive>1</alive>
<scenarios>4,5,6</scenarios>
</agent>
</agents>
XML;
$xml = new SimpleXMLElement($str);
foreach($xml->agent as $agent)
{
var_dump($agent);
echo "<hr>";
}