当前位置:中国站长下载文章中心网页编程.NET编程 → 转换DataSet到普通xml的新法

转换DataSet到普通xml的新法

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:22:10
     大家知道,用dataset传递的WebService,微软会在各个节点加上schema,所以无法与j2ee,flash兼容,所以我找到了一种转换他们变成普通xml的方法。代码如下:
  
  方法一:
  Public Class DataSetToXML : Inherits System.Web.UI.Page
  
   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim objConn As SqlConnection
   Dim strSql As String
  
   strSql = "SELECT TOP 10 * FROM Customers"
   objConn = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
  
   Dim sdaCust As New SqlDataAdapter(strSql, objConn)
   Dim dstCust As New DataSet()
  
   sdaCust.Fill(dstCust, "Customers")
   'Save data to xml file and schema file
   dstCust.WriteXML(Server.MapPath("Customers.xml"),XmlWriteMode.IgnoreSchema)
   dstCust.WriteXMLSchema(Server.MapPath("Customers.xsd"))
   End Sub
  
  这种方法是写入一个xml文件
  
  
  方法二:
   <WebMethod(Description:="所有教室列表")> _
   Public Function ListAllRooms() As XmlDocument
  
   Try
   m_CpCourseArrange.FillRoomId(m_DsCourseArrange)
   'Dim reader As New MemoryStream
  
  
   Dim doc As New XmlDocument
   doc.LoadXml(m_DsCourseArrange.GetXml.ToString)
   Return doc
  
   Catch ex As Protocols.SoapException
   Throw SoapExceptionE.RaiseException("ListAllRooms", "http://tempuri.org/CourseArrange", ex.Message, "4000", ex.Source, SoapExceptionE.FaultCode.Server)
   End Try
   End Function
  
  
  GetXML--Returns the XML representation of the data stored in the DataSet. (MSDN)
  
  
  Private Shared Sub DemonstrateGetXml()
   ' Create a DataSet with one table containing two columns and 10 rows.
   Dim ds As DataSet = New DataSet("myDataSet")
   Dim t As DataTable = ds.Tables.Add("Items")
   t.Columns.Add("id", Type.GetType("System.Int32"))
   t.Columns.Add("Item", Type.GetType("System.String"))
  
   ' Add ten rows.
   Dim r As DataRow
   Dim i As Integer
   For i = 0 To 9
   r = t.NewRow()
   r("id") = i
   r("Item")= "Item" & i
   t.Rows.Add(r)
   Next
  
   ' Display the DataSet contents as XML.
   Console.WriteLine( ds.GetXml() )
  End Sub
  
  
  看来以后用dataset传递的时候也不用为它的转换发愁了。
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。