PDA

View Full Version : مشکل با xml



daffy_duck376
دوشنبه 28 اردیبهشت 1388, 10:28 صبح
سلام دوستان . من یه برنامه دارم که از طریق Web service برام یه کاری رو انجام میده . مثلا یه پارامتر را بهش پاس میدم یه یه مقدار stirng به من برمیگردونه . حالا این مقدار String به فرمت XML هست . من چطور میتونم این مقدار رو توی یه GRIDveiw نمایش بدم ؟
l

daffy_duck376
دوشنبه 28 اردیبهشت 1388, 11:07 صبح
دوستان خودم پیدا کردم !
این هم کدش اگه دیگران هم همین مشکل را داشتن استفاده کنن

XmlDataDocument data = new XmlDataDocument();
data.LoadXml(recive);

DataSet ds = new DataSet();
byte[] buf =System.Text.ASCIIEncoding.ASCII.GetBytes(data.Out erXml);
System.IO.MemoryStream ms = new System.IO.MemoryStream(buf);
ds.ReadXml(ms, XmlReadMode.InferSchema);
ms.Close();
dataGridView1.DataSource = ds.Tables[0];
قابل توجه دوستان recive یک متغیر از نوع string است که فرمت xml را دارد

soha62
دوشنبه 28 اردیبهشت 1388, 11:37 صبح
فکر کنم کد زیر بتونه کمکت کنه، فقط باید مقداری که تابع بر می گردونه به gridview خودت bind کنی




Dim rssDoc As New XmlDocument()
rssDoc.LoadXML("urString")
Dim rssItems As XmlNodeList = rssDoc.SelectNodes("mydataset/myNode")
Dim id As String = ""
Dim link As String = ""
Dim description As String = ""
Dim dt As New DataTable
Dim dr As DataRow
Dim col As New DataColumn("id", GetType(Integer))
dt.Columns.Add(col)
col = New DataColumn("title", GetType(String))
dt.Columns.Add(col)
col = New DataColumn("link", GetType(String))
dt.Columns.Add(col)
Dim i As Integer
For i = 0 To rssItems.Count - 1
Dim rssDetail As XmlNode
dr = dt.NewRow
With dr


rssDetail = rssItems.Item(i).SelectSingleNode("news_ID")
If rssDetail.Equals(Nothing) = False Then
.Item("id") = rssDetail.InnerText
Else
.Item("id") = ""
End If
rssDetail = rssItems.Item(i).SelectSingleNode("news_Subject")
If rssDetail.Equals(Nothing) = False Then
.Item("title") = rssDetail.InnerText
Else
.Item("title") = ""
End If

rssDetail = rssItems.Item(i).SelectSingleNode("news_Subject")
If rssDetail.Equals(Nothing) = False Then
.Item("link") = rssDetail.InnerText
Else
.Item("link") = ""
End If
End With
dt.Rows.Add(dr)
Next
Return dt