0
我明白XMLNAMESPACES
子句的主要目的是聲明命名空間並進一步使用它。如何不顯示XMLNAMESPACES別名
我有以下代碼
DECLARE @XMLFINAL VARCHAR(MAX)
SET @XMLFINAL=''
DECLARE @NUMBER NVARCHAR(100)
DECLARE @XML VARCHAR(MAX)
DECLARE Records CURSOR FAST_FORWARD FOR
SELECT TOP 1 GID FROM PurchasesDocumentsLines
OPEN Records
FETCH NEXT FROM Records INTO @NUMBER
WHILE @@FETCH_STATUS = 0
BEGIN
SET @XML=''
;WITH XMLNAMESPACES ('OrderedProductSection' as q17)
SELECT @XML= (
SELECT
ProductCode as 'q17:ProductCode', OrderedQuantity 'q17:OrderedQuantity'
FROM PurchasesDocumentsLines WHERE [email protected]
FOR
XML RAW('q17:OrderedProductSection'), ELEMENTS
)
產生以下輸出
<q17:OrderedProducts xmlns:q17="http://ITrack.Transmission/2011/02/25/Objects">
<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
<q17:ProductCode>19A0010000</q17:ProductCode>
<q17:OrderedQuantity>2</q17:OrderedQuantity>
</q17:OrderedProductSection>
<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
<q17:ProductCode>1G5Y010000</q17:ProductCode>
<q17:OrderedQuantity>3</q17:OrderedQuantity>
</q17:OrderedProductSection>
<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
<q17:ProductCode>1G5Y020000</q17:ProductCode>
<q17:OrderedQuantity>4</q17:OrderedQuantity>
</q17:OrderedProductSection>
<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
<q17:ProductCode>1G5Y030000</q17:ProductCode>
<q17:OrderedQuantity>5</q17:OrderedQuantity>
</q17:OrderedProductSection>
<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
<q17:ProductCode>1G5Y040000</q17:ProductCode>
<q17:OrderedQuantity>6</q17:OrderedQuantity>
</q17:OrderedProductSection>
</q17:OrderedProducts>
而現在,愚蠢的問題,希望能夠找到一個解決方案:有沒有什麼辦法,對於<q17:OrderedProductSection xmlns:q17="OrderedProductSection">
標籤,不顯示xmlns:q17="OrderedProductSection"
?因爲擁有一個空的URI是不允許的。由於
LE
與REPLACE
功能實現它。
編輯
<q17:OrderedProducts xmlns:q17="http://ITrack.Transmission/2011/02/25/Objects">
<q17:ProductCode>19A0010000</q17:ProductCode>
<q17:OrderedQuantity>2</q17:OrderedQuantity>
<q17:ProductCode>1G5Y010000</q17:ProductCode>
<q17:OrderedQuantity>3</q17:OrderedQuantity>
</q17:OrderedProducts>
有什麼辦法避免'root',使代碼看起來像我的編輯?謝謝 – cdrrrrr
@cdrrrrr哪裏有? –
Shnugo
@cdrrrrr如果你確實需要它,那很容易(但我不會建議這個結構!)。只需將最後一行代碼替換爲FOR XML PATH(''),ROOT('q17:OrderedProducts');'。空的'PATH('')'將返回,沒有行包裝節點 – Shnugo