从XML文件解析player_id

时间:2013-11-14 13:27:20

标签: php simplexml

我想解析标题和<sd:id type="player">ba294ab5-616a-4c26-8e9a-bc09d3680610    使用PHP代码。我从以下XML文件中解析了title属性:

使用以下代码:

$xml = simplexml_load_string($xmlstring);

foreach ($xml->channel->item as $item) {
    $news=(string)$item->title;
}

您能否建议我从ba294ab5-616a-4c26-8e9a-bc09d3680610解析player_id即<sd:id type="player">ba294ab5-616a-4c26-8e9a-bc09d3680610</sd:id>

这是XML字符串:

<?xml version="1.0" encoding="UTF-8"?>
    <channel>
        <title>SportsData &#187; News</title>
            <item>
            <sd:id type="player">ba294ab5-616a-4c26-8e9a-bc09d3680610</sd:id>
            <title><![CDATA[Rashard Mendenhall: Should be Back Sunday]]></title>

1 个答案:

答案 0 :(得分:0)

在这种情况下绝对最简单的方法是使用正则表达式(如果sd:id标记可以有更多格式,则可以修改)。但这仅适用于加载用户标识列表,而不链接到XML节点的任何其他数据。但是,它甚至会从损坏或未完成的XML文件加载数据。

preg_match_all('#<sd:id type="player">(.*?)</sd:id>#', $xml, $matches);

您必须在$xml中拥有XML内容,并且在此命令之后,您将在$matches[1]中拥有一系列ID(因此$matches[1][0]是第一个ID等。)。

如果需要正确解析XML并解析除sd:id之外的其他标记,请尝试使用XMLReader类,该类非常快并且与xml名称空间兼容。