تم شرح العبارات في قسم البرنامج. يتم استخدام فئة XmlWriter بشكل أساسي لإنشاء ملفات XML.
فيما يلي عملية إنشاء ملف XML المطابق من قاعدة البيانات العلائقية. نظرًا لأن XML مجرد برنامج وسيط، فسيتم تجاهل المخطط أو DTD.
1 Page_Load فارغ خاص (مرسل الكائن، System.EventArgs e)
2 {
3 // ضع رمز المستخدم هنا لتهيئة الصفحة
4 //تعريف المعلومات الأساسية
5 سلسلة strTableName = "systypes"؛
6 String strConnection = "server = suntears؛ معرف المستخدم = sa؛ كلمة المرور = 041210؛ قاعدة البيانات = webapplication1_db"؛
7 سلسلة strSql = "select * from "+strTableName;
8 SqlConnection objConn=new SqlConnection(strConnection);
9 SqlDataAdapter objAdapter=new SqlDataAdapter(strSql,objConn);
10 DataSet objDSet=new DataSet();
11 objAdapter.Fill(objDSet,"temp");
12 XmlTextWriter objXmlWriter;
13 String strtemp1=Request.PhysicalApplicationPath;
14 String strpath=strtemp1+"qiming.xml";
15 //تهيئة XmlWriter استخدم هذه الفئة لكتابة ملفات XML
16 objXmlWriter=new XmlTextWriter(strpath,null);
17 //قم بإنشاء إعلان XML في البداية
18 objXmlWriter.WriteStartDocument();
19 //إنشاء عنصر الجذر xml1
20 objXmlWriter.WriteStartElement("xml1");
21 //اسم الجدول هو اسم العنصر، واسم الحقل هو السمة، والسجلات الموجودة في الجدول هي قيم السمات.
22 ل(int i=0;i
24 objXmlWriter.WriteStartElement("menu");
25 for(int j=0;j
27 //اكتب السمات
28 objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName,objDSet.Tables["temp"].Rows[i][j].ToString());
29 }
30 objXmlWriter.WriteEndElement();
31}
32 objXmlWriter.WriteEndElement();
33 objXmlWriter.WriteEndDocument();
34 //استخدم طريقة الإغلاق لإغلاق الملف، وإلا فسيتم قفل الملف
35 objXmlWriter.Close();
36 // عرض النتائج على الصفحة
37 سلسلة strXmlResult؛
38 StreamReader objSR = File.OpenText(strpath);
39 strXmlResult = objSR.ReadToEnd();
40 objSR.Close();
41 Response.Write("" + Server.HtmlEncode(strXmlResult) + "
");
42 }
ما يلي هو الكود لإنشاء قاعدة بيانات علائقية من خلال ملف XML الذي تم إنشاؤه بواسطة البرنامج أعلاه
1 Private void Page_Load(object sender, System.EventArgs e)
2 {
3 // ضع رمز المستخدم هنا لتهيئة الصفحة
4 //تعريف المعلومات الأساسية
5 int cx=1;
6 سلسلة strConn = "server = suntears؛ معرف المستخدم = sa؛ كلمة المرور =؛ قاعدة البيانات = xml_example"؛
7 سلسلة Strappstr=Request.PhysicalApplicationPath;
8 سلسلة strpath=strappstr+"qiming.xml";
9 سلسلة strtablename = "xml1"؛
10 سلسلة strCreatetable = "إنشاء جدول "+strtablename+"(";
11 XmlTextReader objXmlReader=new XmlTextReader(strpath);
12 SqlConnection objConn=new SqlConnection(strConn);
13 SqlCommand objCommand;
14 SqlDataAdapter objAdapter;
15 DataSet objDSet=new DataSet();
16 DataRow objrow;
17 XmlNodeType objNodeType;
18 //استخدم فئة XmlReader لعمليات الوصول إلى ملفات XML
19 //يعتمد XmlReader وضع السحب. لذلك، يتم تكرار كل عقدة من خلال أسلوب القراءة ().
20 بينما (objXmlReader.Read ())
واحد وعشرون {
22 objNodeType=objXmlReader.NodeType;
23 //تنفيذ عمليات مختلفة بناءً على نوع العقدة
24 مفتاح (objNodeType)
25 {
26 //الإعلان في بداية ملف XML
27 حالة XmlNodeType.XmlDeclaration:
28 Response.Write("11111"+objXmlReader.Name+"
");
29 استراحة؛
30 //نوع العقدة العادية
31 حالة XmlNodeType.Element:
32 //تحديد ما إذا كان عنصرًا جذرًا بناءً على عدد السمات
33 إذا (objXmlReader.AttributeCount>0)
34 {
35 //cx بتة العلم. قم بإنشاء قاعدة بيانات بناءً على بنية العنصر عند الوصول إلى عقدة عنصر غير جذر لأول مرة
36 إذا (ج س == 1)
37 {
38 بينما (objXmlReader.MoveToNextAttribute())
39 {
40 strCreatetable=strCreatetable+objXmlReader.Name+" varchar(50), ";
41 }
42 strCreatetable=strCreatetable+")";
43 objCommand=new SqlCommand(strCreatetable,objConn);
44 objConn.Open();
45 objCommand.ExecuteNonQuery();
46 objConn.Close();
47 objAdapter=new SqlDataAdapter("select * from "+strtablename,objConn);
48 objAdapter.Fill(objDSet,strtablename);
49 objXmlReader.MoveToFirstAttribute();
50 //قم بتغيير العلامة إلى قيمة cx
51cx=0;
52 }
53 // تفريغ البيانات الموجودة في ملف XML في كائن DataSet
54 objrow=objDSet.Tables[strtablename].NewRow();
55 objXmlReader.MoveToFirstAttribute();
56 ل(int j=0;j
58 objrow[j]=objXmlReader.Value.ToString();
59 objXmlReader.MoveToNextAttribute();
60 }
61 objDSet.Tables[strtablename].Rows.Add(objrow);
62 }
63 استراحة؛
64}
65 }
66 //عرض جدول البيانات المنقولة
67 DataGrid1.DataSource=objDSet.Tables[strtablename];
68 DataGrid1.DataBind();
69 }لم تتم كتابة رمز تحديث البيانات إلى قاعدة البيانات. افعل ذلك بنفسك^_^