【问题标题】:Need to convert XML online Document into SQL-Server Table需要将 XML 在线文档转换为 SQL-Server 表
【发布时间】:2016-01-12 07:18:44
【问题描述】:

http://www.greaterkashmir.com/feed.aspx?cat_id=2

以上是xml RSS newsFeed 文档的在线链接。 我需要检索它并转换 SQL 表中的每个数据项。

我正在寻找的解决方案如下。其中有一个问题,它返回 NULL

How can I to read a XML from a URL using T-SQL?

【问题讨论】:

    标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012


    【解决方案1】:

    1.将aspx页面保存为xml文档。(我已经保存为check.xml

    2.创建一个table来存储XML数据如下,

     CREATE TABLE xmlinput
     (
      Id INT IDENTITY PRIMARY KEY,
      XMLData XML,
      createdate DATETIME
      )
    

    3.使用OPENROWSETxml文件中插入xmlinput表,如下所示,

     INSERT INTO xmlinput(XMLData, createdate)
     SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE() 
     FROM OPENROWSET(BULK '\\DEVSQL2012\SQLServer\check.xml', SINGLE_BLOB) AS x;
    

    4.现在我们必须使用sp_xml_preparedocument存储过程(带有OPENXML函数)来处理 xml数据存储在Xmlinput表中。

     DECLARE @XML AS XML, @doc AS INT, @SQL NVARCHAR (MAX)
    
     SELECT @XML = XMLData FROM xmlinput
     --select @XML
    
     EXEC sp_xml_preparedocument @doc OUTPUT, @XML
    
    
     SELECT Category, link, title,description,  pubDate ,guid
     into xmldata
    
     FROM OPENXML(@doc, 'xml/channel/item')
     WITH 
    (
    Category [varchar](50)          'category',
    link [varchar](100)             'link',
    title [varchar](100)            'title',
    description [varchar](1000)     'description',
    pubDate [varchar](100)          'pubDate',
    guid    [varchar](100)          'guid'
    )
    
    
    EXEC sp_xml_removedocument @doc  --Call this sp to remove document cache
    GO
    
    
    select *from xmldata 
    

    【讨论】:

    • 我无法存储存储文件我有许多 RSS 链接,我从那里获取 XML 格式的数据
    • 所以我需要相同的解决方案,但本地路径必须替换为在线。就像我上面提到的问题
    • 检查以上链接@bmsqldev
    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多