由于 id = 20 的 League 是 XML 文件的一半,因此您可以使用 XPath 动态执行此操作。这是一个简单的 PHP 代码片段:
<?php
$xml = <<<XML
<Leagues>
<League>
<Id>20</Id>
<Name>Major League Soccer</Name>
<Country>USA</Country>
<Historical_Data>Partial</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>135</NumberOfMatches>
<LatestMatch>2013-06-16T04:00:00+02:00</LatestMatch>
</League>
<League>
<Id>33</Id>
<Name>Allsvenskan</Name>
<Country>Sweden</Country>
<Historical_Data>Partial</Historical_Data>
<Fixtures>Yes</Fixtures>
<Livescore>Yes</Livescore>
<NumberOfMatches>88</NumberOfMatches>
<LatestMatch>2013-06-15T16:00:00+02:00</LatestMatch>
</League>
</Leagues>
XML;
$sxe = new SimpleXMLElement($xml);
// Retrieve league with Id = 20
$league20 = $sxe->xpath("//League[Id='20']");
print_r($league20);
// Retrieve league right after the one with Id = 20
$leagueAfter20 = $sxe->xpath("//League[Id='20']/following-sibling::League[1]");
print_r($leagueAfter20);
输出
Array
(
[0] => SimpleXMLElement Object
(
[Id] => 20
[Name] => Major League Soccer
[Country] => USA
[Historical_Data] => Partial
[Fixtures] => Yes
[Livescore] => Yes
[NumberOfMatches] => 135
[LatestMatch] => 2013-06-16T04:00:00+02:00
)
)
Array
(
[0] => SimpleXMLElement Object
(
[Id] => 33
[Name] => Allsvenskan
[Country] => Sweden
[Historical_Data] => Partial
[Fixtures] => Yes
[Livescore] => Yes
[NumberOfMatches] => 88
[LatestMatch] => 2013-06-15T16:00:00+02:00
)
)