2012-10-22 147 views
3

當我查詢的SQL Server使用FOR XML語句,我得到預期的結果在下面的格式...這是不正確的縮進---SQL Server中的XML查詢格式化

<ROOT><SUBROOT><A>1111</A></SUBROOT><SUBROOT><B>2222</B></SUBROOT><ROOT> 

我如何格式化此結果或查詢它以獲取以下格式?

<ROOT> 
<SUBROOT> 
    <A>1111</A> 
</SUBROOT> 
<SUBROOT> 
    <B>2222</B> 
</SUBROOT> 
<ROOT> 
+1

**你在哪裏得到這個結果? SQL Server Mgmt Studio在結果網格中顯示單行版本 - 但是如果您單擊**,則將以您正在查找的格式打開一個單獨的XML編輯器! –

回答

4

Click here

當您運行在網格模式查詢,XML列的超鏈接。
當您將鼠標懸停在提示上時,會顯示提示。
點擊它將顯示一個格式化的XML選項卡。

+0

如果您需要通過SSMS運行查詢並查看「整潔」XML,則爲+1 - 明智的解決方案。 –

2

SQL Server沒有任何方法來「整理」XML結果。您需要使用第三方工具才能做到這一點。 NotePad++有一些XML格式化工具,只要你沒有使用可笑的大型XML(又名100MB)文件,就可以做得很好。

如果你只是想要一個真正的基本格式,你可以用>\n<或類似的東西與你的前端做一個字符串替換><。嘗試在SQL Server中進行任何格式的XML格式化,您的性能將極差。不要嘗試在SQL Server上格式化您的XML。永遠。

如果您運行的是.Net前端,您可以嘗試插入諸如TidyForNet之類的東西來增加XML,或者您可以通過XSLT轉換(不是首選,恕我直言)運行它。

注意:如果您只需運行一次查詢並以「整齊」格式查看生成的XML,請檢查RichardTheKiwi's answer