如何在 PHP 中使用 SimpleXML 列出数组的特定部分?
How to list specific part of array using SimpleXML in PHP?
所以我有这个 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>
我能够列出所有网站,但无论我尝试什么,我都无法让它只列出每个地区特定的网站。我希望以一种可以拥有 Region['Region1']->site
之类的方式进行操作,但显然那行不通。有没有办法不使用索引来做到这一点?
foreach ($xls2cli->Region as $Region){
echo $Region[id]."<br>";
foreach ($Region->site as $site){
echo $site."<br>"; } }
简单XML不知道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>";
}
}
所以我有这个 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>
Region['Region1']->site
之类的方式进行操作,但显然那行不通。有没有办法不使用索引来做到这一点?
foreach ($xls2cli->Region as $Region){
echo $Region[id]."<br>";
foreach ($Region->site as $site){
echo $site."<br>"; } }
简单XML不知道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>";
}
}