我在try 阅读和解析此提要时遇到了问题: 一些XML提要

由于某些原因,函数SimpleXMLElement返回空 node .我使用FILE_GET_CONTENTS读取URL,然后使用SimpleXMLElement.

下面是一个例子:

<?php
// URL feed XML
$url = 'some xml feed';

$xml_content = file_get_contents($url);

if ($xml_content === false) {
    echo "No XML content.";
    exit;
}

// Parser the XML
$xml = new SimpleXMLElement($xml_content);


foreach ($xml->channel->item as $item) {
    $title = (string) $item->title;
    $id = (string) $item->{'cnn-article:id'};
    $description = (string) $item->description;

    // Hacer lo que necesites con los datos
    echo "Title: $title<br>";
    echo "ID: $id<br>";
    echo "Description: $description<br>";
}
?>

推荐答案

SimpleXML在理想情况下不能处理XML名称空间(即带有冒号的标记),因此很遗憾您不能这样做:

$id = (string) $item->{'cnn-article:id'};

您应该能够通过使用children() Select 器并将真值作为第二个参数传递来获取该字段:

$id = (string) $item->children('cnn-article', true)->id;

或者,如果你要在这个标签中使用一堆字段:

$cnn = $item->children('cnn-article', true);
$id = (string) $cnn->id;
$url = (string) $cnn->url;
$slug = (string) $cnn->slug;
$createdDate = (string) $cnn->{'created-date'};

Php相关问答推荐

如何使用URL链接(mdl)切换选项卡

如何优化-PHP 7.3.14+Laravel 6

在php中有没有办法比较两个包含相同枚举类型的枚举数组

如何使用这种格式构建XML?

WooCommerce在购买后多次重定向

使用MySQLi使用连接字符串设置字符集

这是在可召回的背景下吗?

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

HTAccess重写一些URL,但将所有其他URL发送到另一个页面

未收到Strava WebHook事件数据

是否有条件判断是否发布了另一个Wordpress页面?

将数据推入所有子数组条目

Regex|PHP捕获json字符串中的每个非法双引号

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

使用 foreach php 将记录正确分配给正确的父级

如何将文件上传添加到 WooCommerce 结帐?

如何在WooCommerce中为访客购买者分配自定义客户代码

如何在WooCommerce管理产品列表中显示运输类别列

在 Laravel、Vuejs 和 Inertia 中配置 TypeScript 的问题

php-http/discovery 插件 1.15.1 是否仍在使用自己的模块 destruct Contao 4.13 中的composer 安装?