2009-06-08 13 views
35

Tôi đang tìm kiếm chuỗi từ Số liệu mà không cần bằng GetXml. Thay vào đó, tôi đang sử dụng WriteXml. Làm thế nào để sử dụng nó để có được một chuỗi? Cảm ơnDataSet.WriteXml thành chuỗi

Trả lời

57
StringWriter sw = new StringWriter(); 
dataSet.WriteXml(sw); 
string result = sw.ToString(); 
+2

Ra quan tâm, điều này không thành công trên bộ dữ liệu thực sự lớn (như nó hiện trên GetXML()) System.OutOfMemoryException: Ngoại lệ của loại 'System. OutOfMemoryException 'đã bị ném. tại System.String.GetStringForStringBuilder (Giá trị chuỗi, Int32 startIndex, Int32 length, Int32 capacity) – Rodney

+0

VB.Net Phiên bản: 'Dim sw Như IO.StringWriter = New IO.StringWriter()' 'dataset_name.WriteXml (sw) ' ' Kết quả mờ Như String = sw.ToString() ' – Jeff

7

Viết vào StringWriter, sau đó gọi ToString.

Lưu ý rằng nếu bạn muốn khai báo XML được tạo để chỉ định UTF-8 thay vì UTF-16, bạn sẽ cần một cái gì đó giống như Utf8StringWriter của tôi.

1

đây là đoạn code vb.net:

Private Function GenerateXML(ByVal ds As DataSet) As String 
    Dim obj As New StringWriter() 
    Dim xmlstring As String 
    ds.WriteXml(obj) 
    xmlstring = obj.ToString() 
    Return xmlstring 
End Function