簡體   English   中英

使用命名空間SQL Server進行XML解析

[英]XML parsing with namespace SQL Server

我們正在清理數據庫中的數據,並且一列中包含XML詳細信息,我們希望能夠將其轉換為純文本。

下面是表格列中的示例XML。

 <FlowDocument PagePadding="5,5,5,5" Name="RTDocument" AllowDrop="True" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
     <Paragraph>FILE DESTROYED - MAY 21st, 2008</Paragraph>
     <Paragraph>todo</Paragraph>
 </FlowDocument>

我正在使用此查詢,但是由於存在命名空間,它無法呈現所需的輸出(如果我從XML中刪除了命名空間,則能夠成功呈現輸出)。

SELECT  
    CAST(CAST(Comments AS XML).query('data(/FlowDocument/Paragraph)') AS VARCHAR(7000)) AS activity 
FROM 
    dbo.Activities
WHERE 
    ActivityID = 1

請對此事提供幫助。

謝謝

您還可以這樣聲明您的名稱空間:

;WITH xmlnamespaces(DEFAULT 'http://schemas.microsoft.com/winfx/2006/xaml/presentation')
SELECT
CAST(CAST(Comments AS XML).query('data(/FlowDocument/Paragraph)') AS VARCHAR(7000)) AS activity 
FROM [dbo].Activities where ActivityID=1

這里提供了其他選項: 使用sql server解析xml

您需要按照以下說明在查詢中使用名稱空間聲明: https : //msdn.microsoft.com/zh-cn/library/ms191474.aspx

因此您的查詢部分將類似於:

query('
declare namespace NS="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
data(/NS:FlowDocument/NS:Paragraph)
') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM