【问题标题】:Reading data from xml with php用php从xml读取数据
【发布时间】:2014-03-14 15:35:12
【问题描述】:

请任何人帮助我如何从下面的 xml 文档中检索数据

<?xml version="1.0" encoding="utf-8"?>
<livescore-feed timestamp-created="1279745722">
<item id="afab6479053955afcd07dbe2eb972feb" status= "finished" timestamp-starts= "1278255600">
<teams>
<hosts id="zenspbfc_rus">
<name>Zenit</name>
<fullname>FC Zenit St. Petersburg</fullname>
</hosts>
<guests id="anzmfc_rus">
<name>Anzhi</name>
<fullname>FC Anzhi Makhachkala </fullname>
</guests>
</teams>

<events>
<event type="goal" team="hosts">
<player>Bystrov</player>
<minute>15</minute>
<score>1 - 0</score>
</event>
<event type="yellow_card" team="guests">
<player>Tsorayev</player>
<minute>40</minute>
</event>
</events>
</item>
</livescore-feed>

我尝试了以下方法,并且我能够获取一些数据,除了来自事件节点之外,事件包含一些节点事件。我遇到的问题是如何从事件节点获取事件

$xml = simplexml_load_string($data);
$match_id = $xml->{livescorefullname-feed}->matches->item[$i]['id'];
echo $match_id;

【问题讨论】:

  • 您的 XML 似乎无效。你打开一个&lt;item&gt;,但你试图关闭一个&lt;/items&gt;
  • 谢谢你,这是一个错误,我已经纠正了
  • @GerbenJacobs 请任何关于如何循环遍历 的帮助

标签: php xml xml-parsing simplexml


【解决方案1】:

在 SimpleXML 中,您无需指定根节点,因为 SimpleXML 对象 ($xml) 是根节点。

这会遍历每个事件并输出详细信息。

foreach($xml->item->events->event as $event){
    echo $event->score;
    echo $event->player;

    echo $event->attributes()->type;
    echo $event->attributes()->team;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2014-03-14
    • 1970-01-01
    • 2021-05-05
    相关资源
    最近更新 更多