我想解析标题和<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 » News</title>
<item>
<sd:id type="player">ba294ab5-616a-4c26-8e9a-bc09d3680610</sd:id>
<title><![CDATA[Rashard Mendenhall: Should be Back Sunday]]></title>
答案 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名称空间兼容。