所以我有这个XML文件,我只需要列出特定于每个区域的网站。
<xls2cli>
<Region id="Region1">
<site>Site1</site>
<site>Site2</site>
</Region>
<Region id="Region2">
<site>Site3</site>
<site>Site4</site>
<site>Site5</site>
<site>Site6</site>
</Region>
<Region id="Region3">
<site>Site 7</site>
</Region>
</xls2cli>
&#13;
Region['Region1']->site
之类的东西但显然不起作用。没有使用索引有没有办法做到这一点?
foreach ($xls2cli->Region as $Region){
echo $Region[id]."<br>";
foreach ($Region->site as $site){
echo $site."<br>"; } }
答案 0 :(得分:0)
SimpleXML并不知道id
是特殊的,它只是数据的一部分。最简单的方法只是现有循环中一个无聊的旧if
语句:
foreach ($xls2cli->Region as $Region){
if( $Region['id'] == 'Region1' ) {
echo $Region['id']."<br>";
foreach ($Region->site as $site){
echo $site."<br>";
}
}
}
您还可以使用the xpath()
method,它可以根据XML的内容进行查询:
foreach ( $xls2cli->xpath('./Region[@id="Region1"]') as $Region ) {
echo $Region['id']."<br>";
foreach ($Region->site as $site){
echo $site."<br>";
}
}