热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dc:从XML到SQL表的创建者-dc:creatorfromXMLintoSQLtable

IamtryingtostoreanXMLfile(Codebelow)butthethedc:creatoriscausinganerror.Ihavefou

I am trying to store an XML file (Code below) but the the dc:creator is causing an error. I have found from other related questions on here stating that I should use ;WITH XMLNAMESPACES(''http://purl.org/dc/elements/1.1/'' AS dc) but this has not worked either any ideas on what might be the problem/solution ? .

我正在尝试存储XML文件(下面的代码),但dc:creator导致错误。我在这里找到了其他相关问题,说明我应该使用;使用XMLNAMESPACES(''http://purl.org/dc/elements/1.1/''AS dc),但这对于什么可能没有任何想法是问题/解决方案? 。

XML file:

XML文件:



-


-



http://talksport.com/rss/sports-news/football/feed



en




-



http://talksport.com/football/hillsborough-families-back-introduction-rail-seating-bereaved-family-says-standing-did-not



Wed, 19 Jul 2017 08:18:37 +0000

talkSPORT

247276 at http://talksport.com



This is the stored procedure:

这是存储过程:

CREATE PROCEDURE feed.usp_importXML(@file VARCHAR(8000))
AS
    BEGIN
    DECLARE @Query VARCHAR(8000)
    SET @Query ='
        DECLARE @xmlFile as XML
        SET @xmlFile = ( cast

        SELECT CONVERT(XML,BulkColumn) as BulkColumn
        FROM OPENROWSET (BULK  '''+@file+''', SINGLE_BLOB) AS t)
        INSERT INTO feed.tempXML (title,link,source)
        SELECT
         title = t.value (''title[1]'', ''NVARCHAR(300)''),
         link = t.value (''link[1]'', ''NVARCHAR(300)''),
         source = t.value(''(dc:creator)[1]'',''NVARCHAR(30)'')
        FROM @xmlFile.nodes(''/rss/channel/item'') AS xTable(t);'
        EXEC(@Query)
    END
    GO

1 个解决方案

#1


0  

In your case it might be enough to replace the dc: with a wildcard: *:. Assuming your XML is written into an XML file already, you might try as such:

在您的情况下,用通配符替换dc:可能就足够了:*:假设您的XML已经写入XML文件,您可以尝试这样做:

DECLARE @xmlFile XML=
N'
  
    
    http://talksport.com/rss/sports-news/football/feed
    
    en
    
    
      
      http://talksport.com/football/hillsborough-families-back-introduction-rail-seating-bereaved-family-says-standing-did-not
      
      Wed, 19 Jul 2017 08:18:37 +0000
      talkSPORT
      247276 at http://talksport.com
    
  
';

SELECT
         title = t.value ('title[1]', 'NVARCHAR(300)'),
         link = t.value ('link[1]', 'NVARCHAR(300)'),
         source = t.value('(*:creator)[1]','NVARCHAR(30)')
FROM @XmlFile.nodes('/rss/channel/item') AS xTable(t);

This will work too:

这也可以:

WITH XMLNAMESPACES('http://purl.org/dc/elements/1.1/' AS dc)
SELECT
         title = t.value ('title[1]', 'NVARCHAR(300)'),
         link = t.value ('link[1]', 'NVARCHAR(300)'),
         source = t.value('(dc:creator)[1]','NVARCHAR(30)')
FROM @XmlFile.nodes('/rss/channel/item') AS xTable(t);

And you can declare the namespace within .value too:

您也可以在.value中声明命名空间:

SELECT
         title = t.value ('title[1]', 'NVARCHAR(300)'),
         link = t.value ('link[1]', 'NVARCHAR(300)'),
         source = t.value('declare namespace dc="http://purl.org/dc/elements/1.1/";(dc:creator)[1]','NVARCHAR(30)')
FROM @XmlFile.nodes('/rss/channel/item') AS xTable(t);

推荐阅读
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
author-avatar
风过无痕啦啦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有