【问题标题】:Finding <itunes:email> value in RSS using xpath importxml google sheets formula使用 xpath importxml google sheet 公式在 RSS 中查找 <itunes:email> 值
【发布时间】:2020-01-13 03:56:05
【问题描述】:

很难让 google sheet =importxml 公式返回 RSS 提要中 &lt;itunes:email&gt; 标记内的值。

让我们使用这个提要,例如:https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss

当使用这个公式时:

=IMPORTXML("https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss","//channel")

我得到了&lt;channel&gt; 标签中的所有内容(如预期的那样)。有趣的是,标签与&lt;itunes:name&gt; 一起嵌套在&lt;itunes:owner&gt; 标签内——因此谷歌表格会将这两个值放在一个单元格中。它看起来像这样:“WKXL - NH Talk Radioaj@concordnewsradio.com”,因为&lt;itunes:name&gt; 标签是“WKXL - NH Talk”,&lt;itunes:email&gt; 标签是“aj@concordnewsradio.com”。

当我尝试使用这个公式来隔离它时: =IMPORTXML("https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss","//channel/itunes:owner")

我收到“导入的内容为空”的错误消息。

有没有办法隔离 &lt;itunes:email&gt; 值?对这里的 Xpath 元素不太了解。

非常感谢任何帮助!

【问题讨论】:

    标签: xpath google-sheets google-sheets-importxml


    【解决方案1】:

    &lt;itunes:owner&gt; 位于 XML 命名空间中,由 itunes: 表示并关联到一个 URI(您可以在 XML 文档中找到该 URI)。

    通常,您会在使用 XPath 之前声明该名称空间,但 IMPORTXML 没有任何功能。所以你可以做的是通过它的本地名称引用元素,即owner,忽略命名空间。

    //channel/*[local-name() = 'owner']
    

    *[local-name() = 'owner'] 可以读作 “local-name() 为 owner 的任何元素 (*)”。您必须为命名空间中的每个 XML 元素执行此工作。

    【讨论】:

      【解决方案2】:

      试试

      =IMPORTXML("https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss","//channel//*[local-name()='owner']/*[local-name()='email']")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多