perl - 如何使用 XML::LibXML 解析 <rss> 标记以查找 xmlns 定义

标签 perl rss

播客似乎没有一致的方式来定义它们的 rss 提要。 遇到一个对 RSS 使用不同架构定义的情况。

使用 XML::LibXML 扫描 RSS url 中的 xmlnamespace 的最佳方法是什么

例如

一个 Feed 可能是

<rss 
    xmlns:content="http://purl.org/rss/1.0/modules/content/" 
    xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:atom="http://www.w3.org/2005/Atom" 
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

另一个可能是

<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom">

我想在我的脚本中包含对正在使用的所有命名空间的评估,以便在解析 rss 时,可以跟踪适当的字段名称。

还不确定它会是什么样子,因为我不确定这个模块是否有能力执行<rss>我想要的标签属性雾化。

最佳答案

我不确定我是否准确理解您正在寻找什么样的输出,但是 XML::LibXML确实能够列出 namespace :

use warnings;
use strict;
use XML::LibXML;

my $dom = XML::LibXML->load_xml(string => <<'EOT');
<rss 
    xmlns:content="http://purl.org/rss/1.0/modules/content/" 
    xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:atom="http://www.w3.org/2005/Atom" 
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">
</rss>
EOT
for my $ns ($dom->documentElement->getNamespaces) {
    print $ns->getLocalName(), " / ", $ns->getData(), "\n";
}

输出:

content / http://purl.org/rss/1.0/modules/content/
wfw / http://wellformedweb.org/CommentAPI/
dc / http://purl.org/dc/elements/1.1/
atom / http://www.w3.org/2005/Atom
sy / http://purl.org/rss/1.0/modules/syndication/
slash / http://purl.org/rss/1.0/modules/slash/

关于perl - 如何使用 XML::LibXML 解析 <rss> 标记以查找 xmlns 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610536/

相关文章:

iOS 验证 RSS

xml - 如何在 expressjs 4.x 中呈现 xml/rss?

javascript - 从 iTunes Podcast XML feed 获取图像

css - django 联合提要框架 : adding CSS to RSS

perl - 在perl -e行之后使用花括号的目的是什么

perl - 如果 key 不存在,Perl 中的哈希会添加 key

regex - 如何组合这些正则表达式?

Perl 在运行时以编程方式修改 POD

perl - 使用带有 Moose 类型约束的祝福 CodeRefs

php - 我在使用 simplexml 解析 facebook 提要时遇到问题