0

这可能是一个非常基本的问题。所以请原谅我的菜鸟。我试图让自己熟悉 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 提要

4

3 回答 3

3

我自己弄明白了。我所做的是获取[content]节点的全部内容,然后用于preg_match从中查找<img>标签。

$content = $xml->content;
preg_match('/(<img[^>]+>)/i', $content, $matches);
echo $matches[0];
于 2013-02-04T10:39:48.180 回答
0

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

<content></content>

要获取图像源,只需执行;

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

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

希望这可以帮助你

于 2013-02-04T10:03:03.193 回答
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;
        }
    }
?>
于 2013-02-04T10:07:50.260 回答