आप केवल एक्सएमएल स्टोर करने के लिए और यह करने के लिए कुछ भी करने की जरूरत नहीं है, तो यह शायद सबसे आसान तरीका यह पूरा करने के लिए है - सीधे सरल ADO.NET का उपयोग कर:
string query = "SELECT EmployeeID, LastName, FirstName, Title, BirthDate, HireDate FROM dbo.Employees FOR XML AUTO";
using(SqlConnection _con = new SqlConnection("server=(local);database=Northwind;integrated security=SSPI;"))
using (SqlCommand _cmd = new SqlCommand(query, _con))
{
_con.Open();
string result = _cmd.ExecuteScalar().ToString();
_con.Close();
File.WriteAllText(@"D:\test.xml", result);
}
यह एक फ़ाइल पैदा करेगा D:\test.xml
(या अपने सिस्टम से मेल खाने के लिए इसे बदलें) और उन एक्सएमएल टैग को उस फाइल में रखेगा। सिर्फ एक स्ट्रिंग वापस नहीं -
SqlCommand
वस्तु भी एक .ExecuteXmlReader()
विधि है जो स्कैन और एक्सएमएल हेरफेर करने के लिए एक XmlReader
वस्तु वापसी होगी है। जो भी आपको सबसे ज्यादा समझ में आता है उसका प्रयोग करें!
पीएस: भी, FOR XML AUTO
का आउटपुट थोड़ा सा है .... मान लें ... सबोपेटिमल। यह dbo.Employee
का उपयोग करता है क्योंकि यह मुख्य एक्सएमएल टैग है और आगे ... SQL सर्वर 2008 के साथ, मैं दृढ़ता से अनुशंसा करता हूं कि आप FOR XML PATH
का उपयोग करके देखें - यह आपको XML आउटपुट के लेआउट को ट्विक और कस्टमाइज़ करने की अनुमति देता है।
FOR XML AUTO
<dbo.Employees _x0040_ID="1" LastName="Davolio" FirstName="Nancy" Title="Sales Representative" BirthDate="1948-12-08T00:00:00" HireDate="1992-05-01T00:00:00" />
<dbo.Employees _x0040_ID="2" LastName="Fuller" FirstName="Andrew" Title="Vice President, Sales" BirthDate="1952-02-19T00:00:00" HireDate="1992-08-14T00:00:00" />
के साथ अपने मूल XML आउटपुट की तुलना करें इस क्वेरी के लिए - बस अंतर को देखने के लिए:
SELECT
[EmployeeID] AS '@ID',
[LastName], [FirstName],
[Title],
[BirthDate], [HireDate]
FROM
[dbo].[Employees]
FOR XML PATH('Employee'), ROOT('Employees')
आउटपुट है:
<Employees>
<Employee ID="1">
<LastName>Davolio</LastName>
<FirstName>Nancy</FirstName>
<Title>Sales Representative</Title>
<BirthDate>1948-12-08T00:00:00</BirthDate>
<HireDate>1992-05-01T00:00:00</HireDate>
</Employee>
<Employee ID="2">
<LastName>Fuller</LastName>
<FirstName>Andrew</FirstName>
<Title>Vice President, Sales</Title>
<BirthDate>1952-02-19T00:00:00</BirthDate>
<HireDate>1992-08-14T00:00:00</HireDate>
</Employee>
आप इस API का उपयोग करना चाहिए: youtube.com/watch? v = hlY_PoJhlMk –