由于 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
    )
)