2017-03-14 45 views
1

我需要的輸出 -如何打開和關閉標籤之間的獲取與價值XML RAW TSQL

<g> 
<text x="480" y="846">Dakshin Bastar Dantewada</text> 
<text x="460" y="833">Bijapur</text> 
<text x="475" y="809">Narayanpur</text> 
<text x="475" y="792">Uttar Bastar Kanker</text> 
<text x="466" y="765">Rajnandgaon</text> 
</g> 

使用FOR XML生,我得到輸出 -

<g> 
<text x="480" y="846" DistrictName = "Dakshin Bastar Dantewada" /> 
<text x="460" y="833" DistrictName = "Bijapur" /> 
<text x="475" y="809" DistrictName = "Narayanpur" /> 
<text x="475" y="792" DistrictName = "Uttar Bastar Kanker" /> 
<text x="466" y="765" DistrictName = "Rajnandgaon" /> 
</g> 

代碼我試圖上是: -

SELECT  
       (SELECT 
         X AS x , 
         Y AS y , 
         DISTRICTNAME 
         FROM 
         dbo.MYDISTRICT d1 
         WHERE 
         d1.STATEID = @pStateId 
       FOR 
        XML RAW('text') , 
        TYPE 
       ) 
FROM  dbo.MYSTATE 
WHERE  dbo.MYSTATE.STATEID = @pStateId AND   dbo.MYSTATE.COUNTRYID = @pCountryId 

FOR 
XML RAW('g'), TYPE 

我在文本XML RAW開始和結束標記之間需要區名。

任何幫助表示讚賞。

非常感謝。

回答

1

使用RAW您將獲得屬性元素。使用FOR XML PATH如果您想詳細的說明你的結構:

SELECT  
       ( 
       SELECT 
         X AS [text/@x], 
         Y AS [text/@y] , 
         DISTRICTNAME AS [text] 
         FROM 
         dbo.MYDISTRICT d1 
         WHERE 
         d1.STATEID = @pStateId 
       FOR 
        XML PATH(''), 
        TYPE 
       ) 
FROM  dbo.MYSTATE 
WHERE  dbo.MYSTATE.STATEID = @pStateId AND   dbo.MYSTATE.COUNTRYID = @pCountryId 

FOR 
XML RAW('g') 
+0

由於Shnugo 其工作 – jitu