5

FORXMLステートメントを使用してSQLServerにクエリを実行すると、次の形式で期待される結果が得られます...つまり、適切なインデントがありません---

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

この結果をフォーマットする、または次のフォーマットで取得するようにクエリするにはどうすればよいですか?

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

2 に答える 2

5

ここをクリック

GRID モードでクエリを実行すると、XML 列がハイパーリンクされます。
カーソルを合わせるとヒントが表示されます。
図のようにクリックすると、フォーマットされた XML タブが表示されます。

于 2012-10-22T20:34:28.727 に答える
2

SQL Server には、XML の結果を "整理" する方法がありません。これを行うには、サードパーティのツールを使用する必要があります。NotePad++には、非常に大きな XML (別名 100MB) ファイルを扱っていない限り、うまく機能する XML フォーマット ツールがいくつかあります。

本当に基本的な書式設定だけが必要な場合は、フロントエンドで><with>\n<またはそのような文字列置換を行うことができます。SQL Server で XML の書式設定を行おうとすると、パフォーマンスが非常に低下します。SQL Server で XML をフォーマットしようとしないでください。これまで。

.Net フロントエンドを実行している場合は、TidyForNetなどをプラグインして XML をきれいにするか、XSLT 変換 (推奨されませんが、IMHO) を介して実行できます。

注: クエリを 1 回だけ実行して、結果の XML を「きちんとした」形式で表示する必要がある場合は、RichardTheKiwi の回答を確認してください。

于 2012-10-22T20:35:30.083 に答える