PDA

View Full Version : تولید XML به وسیله برنامه نویسی



maxpayn2
یک شنبه 06 آبان 1386, 10:18 صبح
سلام
نگید جستجو نکردم ، جالب اینکه لغت XML رو در تمام تالار ها جستجو کردم گفت هیچ مورد تازه ای یافت نشد .
میخواستم بپرسم با کد نویسی (ترجیحا C#) چه طوری میشه یک فایل XML تولید کرد ؟

ehsan2007
یک شنبه 06 آبان 1386, 10:24 صبح
یک مثال برات میزنم پایین از توی بانک اطلاعات میخونه فیلدهارو می نویسه توی xml

string q = null, p = null, v = null; int g = 0;
FileStream XmlStream = newFileStream(Server.MapPath("xml//headlines.xml"), FileMode.Create);
XmlTextWriter w = newXmlTextWriter(XmlStream, System.Text.Encoding.UTF8);
OleDbConnection Con = newOleDbConnection("provider=microsoft.jet.oledb.4.0;Data Source=" + Server.MapPath("xml/box.mdb"));
OleDbCommand Cmd = newOleDbCommand("SELECT * FROM box order by [data] DESC", Con);
OleDbDataReader DR = null;
Cmd.Connection.Open();
DR = Cmd.ExecuteReader();
w.WriteStartDocument();
w.WriteStartElement("broadcast");
while (g < 10)
{
while (DR.Read())
{
p = DR["id"].ToString();
v = DR["name1"].ToString();
q = DR["link"].ToString();
if (p == "0")
{
w.WriteStartElement("story");
w.WriteStartElement("lead");
w.WriteString("" + v + "");
w.WriteEndElement();
w.WriteStartElement("URL");
w.WriteString("" + q + "");
w.WriteEndElement();
w.WriteEndElement();
}
}
g += 1;
}
w.WriteEndDocument();
w.Close();
Con.Close();
}

البته باید اولم این کلاسهارو تعریف کرده باشی
using System.IO;
using System.Xml.Serialization;
using System.Xml;

khz-web1
یک شنبه 06 آبان 1386, 15:45 عصر
کد وی بیش هم بده آقا ..... هر چی مبتدی تر باشه بهتره

maxpayn2
یک شنبه 06 آبان 1386, 15:54 عصر
میتونی به این آدرس بری و کد رو به VB تبدیل کنی :
http://carlosag.net/Tools/CodeTranslator/Default.aspx

ehsan2007
یک شنبه 06 آبان 1386, 17:28 عصر
اینم کد vb البته باید کلاسهاشو اول اضافه کنی تا کار کنه

g = 1
Dim fs As New FileStream(Server.MapPath("xml/headlines.xml"), FileMode.Create)
Dim w As New XmlTextWriter(fs, Nothing)
w.WriteStartDocument()
w.WriteStartElement("broadcast")
While g < 10
cmd = New OleDbCommand(strsql, con)
dr = cmd.ExecuteReader()
While dr.Read()
p = dr("id")
v = dr("name")
q = dr("link")
If g = p Then
w.WriteStartElement("story")
w.WriteStartElement("lead")
w.WriteString("" & v & "")
w.WriteEndElement()
w.WriteStartElement("URL")
w.WriteString("" & q & "")
w.WriteEndElement()
w.WriteEndElement()
End If
End While
g = g + 1
End While
w.WriteEndDocument()
w.Close()
con.Close()


اینم کلاس هاش
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema

khz-web1
یک شنبه 06 آبان 1386, 20:45 عصر
آقا احسان2007 میشه خط به خط کد زیر رو توضیح بدید که چیکار میکنه ؟

با تشکر محمد

ehsan2007
یک شنبه 06 آبان 1386, 21:23 عصر
در مورد کد اول

Dim fs As New FileStream(Server.MapPath("xml/headlines.xml"), FileMode.Create)

فایلی با نامی که تعریف کردی رو توی جایی که آدرسشو دادی درست میکنه مثل xml/headlines.xml

Dim w As New XmlTextWriter(fs, Nothing)

شی w رو از نوع کلاس XmlTextWriter تعریف میکنه اگه میخوای فارسی توی فایل xml باشه به جای Nothing شما باید از کلاس System.Text.Encoding.UTF8 استفاده کنید
شروع میکنه به نوشتن w.WriteStartDocument()
توی فایل xmlکد با یک تگ شروع شده و تمام میشه حالا مثل <h>و با تگ </h>تمام میشه حالا برای شروع از کد

w.WriteStartElement("broadcast")

و برای اتمام تگ از کد

w.WriteEndElement()

استفاده میکنی
در آخر هم باید به شی w فرمان اتمام کارو بدی ک با کد زیر این کار انجام داده میشه

w.WriteEndDocument()
w.Close()

در بالا هم از یک حلقه استفاده شده تا 10 فیلد از بانک اطلاعاتو بخونه و توی فایل xml ذخیره کنه امیدوارم تونسته باشم کمکتون کنم

ehsan2007
یک شنبه 06 آبان 1386, 21:39 عصر
یادم رف فایل xml که توسط کد بالا درست شده ضمیمه میکنم نگاهش بکن حتما همه کدهای بالارو متوجه میشی