3

这是我从 rss 提要中获得的描述项目:

        <description><![CDATA[ <img src="http://images.24ur.com/media/images/210/Nov2012/61090877.jpg" alt="24ur.com"/>
        Na sedeĹžu Evropske nogometne zveze v Nyonu so izĹžrebali pare osmine finala Lige prvakov. BrĹžkone bo najbolj vroÄe v Madridu, kjer se bo zasedba Reala uvodoma udarila z Manchester Unitedom, povratni dvoboj pa bosta velikana evropskega nogometa odigrala v Manchestru.]]></description>

它包含无法用 xml 解析器解析的 CDATA 标记。如果我

echo $test->description;

我在浏览器中看到了 img,但我无法访问脚本中的 src。知道怎么做吗?

4

2 回答 2

1

您不能将 CDATA 部分中的 XML 作为 XML 访问。
您需要使用正则表达式对其进行解析以获取src.
或者将其作为另一个 XML 打开。

测试和工作:

$h = '<img src="http://images.24ur.com/media/images/210/Nov2012/61090877.jpg" alt="24ur.com"/>';

preg_match("/http:\/\/(.*?)[^\"']+/", $h, $matches);
var_dump($matches[0]);

输出:

string(60) "http://images.24ur.com/media/images/210/Nov2012/61090877.jpg" 
于 2012-12-20T11:51:09.493 回答
1

描述包含单个文本节点(其数据是一段 HTML)。它不包含任何 XML 元素。

如果要从 HTML 中提取数据,则需要先通过 HTML 解析器将文本节点的数据传递。

于 2012-12-20T11:51:21.503 回答