找到IMG标记并从RSS提要节点中获取它的“src”

时间:2013-02-04 09:57:02

标签: php xml simplexml

这可能是一个非常基本的问题。所以请原谅我的noobness。我正在努力让自己熟悉xml遍历。假设我有这个节点

[content]
 <img src="some url" />
 <a href="some link">Some link</a>
 Some text after the link.
[/content]

如您所见,该节点包含文本和标签的混合。所以我想知道我是否可以定位该节点中的img标记并获取src属性?

我正在使用simplexml来读取xml文件。

如果我只做$xml->content,浏览器会显示图片,链接和文字。所以我希望有一些选项可以“找到”<img>节点中的content标记。

更新

好。我想我可能使用了错误的技术术语。 RSS提要是XML一样吗?我从这个URL

获取XML Feed

3 个答案:

答案 0 :(得分:3)

我自己弄清楚了。我所做的是获取[content]节点的全部内容,然后使用preg_match从中找到<img>标记。

$content = $xml->content;
preg_match('/(<img[^>]+>)/i', $content, $matches);
echo $matches[0];

答案 1 :(得分:0)

目前内容不是XML节点。它应该像这样形成;

<content></content>

要获取图像源,请执行;

$xml->content->img['src']

Simplexml通过' - &gt;'使节点可访问。 节点属性可通过数组表示法'[“attr name”]'

访问

希望这有助于你

答案 2 :(得分:0)

这可以帮到你:

<?php

    $html = '
        <body>
            <img src="some url" />
            <a href="some link">Some link</a>
            Some text after the link.
        </body>
    ';

    $xml = simplexml_load_string($html);
    foreach($xml->children() as $child)
    {
        if ($child->getName() === 'img')
        {
            $attributes = $child->attributes();
            $img_source = $attributes['src'];
            echo $img_source;
        }
    }
?>