gpt4 book ai didi

sql - 获取 dc :creator using SQL XML 的值

转载 作者:行者123 更新时间:2023-12-04 17:26:34 24 4
gpt4 key购买 nike

我不确定如何使用 SQL 从 RSS 提要中获取 dc:creator 的值。
这是我的 xml/rss-feed:

<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>Foobar RSS</title>
<link>http://www.foobar.com/</link>
<description>RSS feed</description>
<language>en</language>
<ttl>15</ttl>
<item>
<title>This is my title</title>
<link>http://www.foobar.com/link/blabla</link>
<description>Bla..bla..bla..</description>
<dc:creator>John Doe</dc:creator>
<guid isPermaLink="false">00082EA751F1D905DE00E7CFA2417DA9</guid>
<pubDate>Wed, 26 Oct 2011 00:00:00 +0200</pubDate>
</item>
</channel>
</rss>

在我的 SQL 中,我使用这样的东西来获取值 - 例如对于 pubDate 我使用这样的东西:
DECLARE @xml XML
SET @xml = cast('my rss feed here' AS xml)

SELECT
convert(datetime,substring(T.nref.value('pubDate[1]','nvarchar(100)'),6,20)) as pubdate,
FROM @xml.nodes('//item') AS T(nref)

这工作正常,但是当我尝试获取 dc:creator 值 'John Doe' 时,以下只是给我一个错误:
SELECT
T.nref.value('dc:creator','nvarchar(100)') as creator
FROM @xml.nodes('//item') AS T(nref)

error:
XQuery [value()]: The name "dc" does not denote a namespace.

我需要能够从 rss-feed 中选择多个列。任何人都可以提供解决方案或方向来获得 dc:creator 的值(value)吗?

我还有一个问题 - 如果您在子选择中执行该代码,您将如何构建该代码?
E.g. 
INSERT INTO RSSResults (ID, pubDate)
SELECT @ID, tbl.pubDate FROM (

;WITH XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS dc)
SELECT
RSS.Item.value('(dc:creator)[1]', 'nvarchar(100)') as pubDate
FROM
@xml.nodes('/rss/channel/item') as RSS(Item)) AS tbl

代码在“;WITH XMLNAMESPACES”处中断。是否可以以某种方式直接在语句中包含命名空间?

最佳答案

尝试这样的事情:

DECLARE @xml XML
SET @xml = cast('my rss feed here' AS xml)

;WITH XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS dc)
SELECT
@xml.value('(rss/channel/item/dc:creator)[1]', 'nvarchar(100)')

如果您需要捕捉多个项目 - 试试这个:
DECLARE @xml XML
SET @xml = cast('my rss feed here' AS xml)

;WITH XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS dc)
SELECT
RSS.Item.value('(dc:creator)[1]', 'nvarchar(100)')
FROM
@xml.nodes('/rss/channel/item') as RSS(Item)

关于sql - 获取 dc :creator using SQL XML 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155302/

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