2

我想解析标题并 <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;
}

你能建议我一种解析 player_id 的方法ba294ab5-616a-4c26-8e9a-bc09d3680610<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>
4

1 回答 1

0

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

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

您必须在其中包含 XML 内容,$xml并且在此命令之后您将包含 ID 数组$matches[1]$matches[1][0]第一个 ID 等也是如此)。

如果您需要正确解析 XML 并解析 sd:id 以外的其他标签,请尝试使用 XMLReader 类,它非常快速且与 xml 命名空间兼容。

于 2013-11-23T01:40:33.677 回答