اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
فرض کنید که میخواهیم خروجی از جدول خود را به صورت XML نمایش یا از طریق وب سرویس در برنامه مان استفاده نماییم. اولین راهی که به ذهنمان میرسد خودمان رشته xml را با حلقه ای ایجاد نماید یا استفاده از فضای نام System.Xml و کلاسهای نوشته شده برای این کار . اما خود Sql Server امکانات ویژه ای برای کار با ساختار xml مهیا نموده که براحتی میتوانید خروجی xml از داده هایتان ایجاد نمایید.
برای این کار از عبارت For XML در Select میتوان استفاده نمود. برای مثال برای بدست آوردن ساختار ساده از For Xml Auto استفاده نمایید
SELECT BusinessEntityID, PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML AUTO
که خروجی بصورت node attribute زیر میباشد:
اما اگر بخواهیم خروجی به صورت node Elements باشد کافیست از پارامتر Elements استفاده نمایید
SELECT BusinessEntityID, PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML AUTO, ELEMENTS
خروجی بصورت زیر میباشد:
اگر بخواهیم node attributes و node elements با هم ترکیب کنیم بصورت زیر عمل میکنیم:
SELECT BusinessEntityID AS '@ID', PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML ELEMENTS
خروجی بصورت زیر است:
حال میخواهیم همه nodeها را یک node ریشه قرار دهیم برای این کار از پارامتر ROOT در کنار AUTO به صورت زیر استفاده نمایید:
SELECT * FROM Person WHERE BusinessEntityID = 15291 FOR XML AUTO , ROOT('Persons')
اما اگر بخواهیم نام جدول را با نام دلخواه خود تغییر دهیم از پارامتر PATH به جای AUTO به صورت زیر استفاده نمایید:
SELECT * FROM Person WHERE BusinessEntityID = 15291 FOR XML PATH('P') , ROOT('Persons')