提取特定的XML节点

时间:2014-11-17 15:04:26

标签: php xml xpath

我有以下XML文件:

<XmlSports xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" CreateDate="2014-11-17T14:46:38.6954+01:00">
  <Sport Name="SOCCER" ID="7">
    <Event Name="African Nations Cup" ID="54" IsLive="false">
      <Match Name="DR Congo v Sierra Leone" ID="1552163" StartDate="2014-11-19T15:00:00.1+01:00">
        <Bet Name="Double Chance" ID="6337125"/>
        <Bet Name="Draw No Bet" ID="6337124"/>
        <Bet Name="Match Odds" ID="6337119"/>
        <Bet Name="Odds or Evens" ID="6337123"/>
        <Bet Name="Over/Under" ID="6337121"/>
      </Match>
    </Event>
  </Sport>

我只是包含了文件的一小部分,但基本上这个文件包括除了足球以外的其他运动,由“运动名称=&#34;运动名称”和“#34; ID =&#34;体育ID&#34;&#39;。

我想只提取SOCCER节点。我尝试过使用XPath但没有成功。 我怎样才能提取出运动名称=&#34; SOCCER&#34; ID =&#34; 7&#34;&#39;这个XML的一部分?

2 个答案:

答案 0 :(得分:0)

这应该给你一个起点。 假设$ string包含有效的xml。

$xml = simplexml_load_string($string);
$sport = $xml->xpath("//Sport[@Name='SOCCER']");
print_r($sport);

答案 1 :(得分:0)

我希望你试过这个

//XmlSports/Sport[@Name='SOCCER' and @ID='7']