使用PHP解析特定的XML文件并读取它

时间:2013-03-14 11:21:44

标签: php xml parsing object

我想了解读取和解析此“XML”文件的方法。我的代码正在使用其他XML文件,无法理解我的错误。

<F24 ZId="0" ZdId="0" PlikXml="0" rP="0" DCal="20130314">
  <Kraje i="35">...</Kraje>
  <Mecze>
    <M MId="1049553" LId="28541" _LId="28537" OId="230" SId="5" KId="220" LNr="2" C0="1363226400" ML="1" HId="2590" GId="2975" W="" HN="Pérez Zeledón" GN="Puntarenas FC" HRC="" HRCi="0" GRC="" GRCi="0" Info="" S1="0-0" S2="0-0" MStan="1" OTv="" L="0" A="0" Ao="4"/>
  </Mecze>
</F24>

这是XML文件的结构。我想从“Mecze-&gt; M”获得F24->Mecze->M{'GN'};或其他内容。

目前的代码。

<?php

$file = '...';
$rss = simplexml_load_file($file);

foreach ($rss->{'M'} as $OO) { 

        $ht = $OO->{'HN'};

        echo $ht;

}
?>

3 个答案:

答案 0 :(得分:0)

根据演示数据的结构,你需要像

这样的东西

foreach($ rss-&gt; Mecze-&gt; M as $ OO)

或者

foreach ($rss->xpath('Mecze/M') as $OO)

答案 1 :(得分:0)

$rss = simplexml_load_string('<F24 ZId="0" ZdId="0" PlikXml="0" rP="0" DCal="20130314">
  <Kraje i="35">...</Kraje>
  <Mecze>
    <M MId="1049553" LId="28541" _LId="28537" OId="230" SId="5" KId="220" LNr="2" C0="1363226400" ML="1" HId="2590" GId="2975" W="" HN="Pérez Zeledón" GN="Puntarenas FC" HRC="" HRCi="0" GRC="" GRCi="0" Info="" S1="0-0" S2="0-0" MStan="1" OTv="" L="0" A="0" Ao="4"/>
  </Mecze>
</F24>');
foreach ($rss->Mecze->M as $OO) { 

        echo $OO['HN'];

}  

http://codepad.org/loNVfOew

答案 2 :(得分:0)

您可以尝试sax php http://www.php.net/manual/en/function.xml-set-object.php并提取任何节点,属性或创建任何结构