gpt4 book ai didi

php - 在 PHP 中从 XML 中解析 HTML 标签

转载 作者:可可西里 更新时间:2023-11-01 01:03:18 26 4
gpt4 key购买 nike

我正在尝试使用 simplexml_load_string 创建我自己的 RSS 提要(学习目的)解析时 http://uk.news.yahoo.com/rss在 PHP 中。我无法阅读 <description> 中的 HTML 标签标签。

到目前为止,我的代码如下所示:

$feed = file_get_contents('http://uk.news.yahoo.com/rss');
$rss = simplexml_load_string($feed);

//for each element in the feed
foreach ($rss->channel->item as $item) {
echo '<h3>'. $item->title . '</h3>';

foreach($item->description as $desc){

//how to read the href from the a tag???

//this does not work at all
$tags = $item->xpath('//a');
foreach ($tags as $tag) {
echo $tag['href'];
}
}
}

关于如何提取每个 HTML 标签有什么想法吗?

谢谢

最佳答案

描述内容有其特殊字符编码,因此它不被视为 XML 中的节点,而只是一个字符串。您可以解码特殊字符,然后将 HTML 加载到 DOMDocument 中并执行任何您想执行的操作。例如:

foreach ($rss->channel->item as $item) {
echo '<h3>'. $item->title . '</h3>';

foreach($item->description as $desc){

$dom = new DOMDocument();
$dom->loadHTML(htmlspecialchars_decode((string)$desc));

$anchors = $dom->getElementsByTagName('a');
echo $anchors->item(0)->getAttribute('href');
}
}

XPath 也可用于 DOMDocument,参见 DOMXPath .

关于php - 在 PHP 中从 XML 中解析 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com