لقد اختبرت ذات مرة دون استخدام قاعدة بيانات وقمت بتخزين معلومات أعضاء موقع الويب ومعلومات بيانات المنتج ومعلومات المعاملات ومعلومات تخصيص موقع الويب في ثلاثة ملفات بتنسيق XML، وكانت نتائج التشغيل طبيعية جدًا، لكنني لم أشعر بذلك غير متأكد. بالنسبة لأحجام البيانات الصغيرة، تتمتع ملفات XML بالعديد من المزايا مقارنة بـ ACCESS في الاسترجاع والتحديث.
لقد اختبرت ذات مرة دون استخدام قاعدة بيانات وقمت بتخزين معلومات أعضاء موقع الويب ومعلومات بيانات المنتج ومعلومات المعاملات ومعلومات تخصيص موقع الويب في ثلاثة ملفات بتنسيق XML، وكانت نتائج التشغيل طبيعية جدًا، لكنني لم أشعر بذلك غير متأكد.
دعونا نتحدث عن الطرق الرئيسية لإنشاء عمليات XML والاستعلام عنها وتعديلها وما إلى ذلك
رمز البرنامج
رقم 1--إنشاء قاعدة بيانات XML data.xml
انسخ رمز الكود كما يلي:
<?xml الإصدار=1.0?>
<السجلات>
<سجل>
<الاسم>الكاكا</الاسم>
<qq>154222225</qq>
<email>[email protected]</email>
</سجل>
<السجلات>
رقم 2--إنشاء كائن إنشاء كائن
قم بإنشاء كائن data.xml أولاً
تعيين xmldoc=server.createobjcet(microsoft.xmldom)
xmldoc.load(server.mappath(data.xml)
رقم 3--العقدة المحددةSelectNode
ما هي العقدة التي تريد تشغيلها؟ يجب عليك تحديد موقع هذه العقدة، أليس كذلك؟ انظر أولاً إلى عدد العقد الموجودة في ملف data.xml هذا؟؟
افعل ذلك باستخدام وظيفة العودية:
انسخ رمز الكود كما يلي:
الحصول على العقد (xmldoc)
العقد الفرعية (العقدة)
خافت أنا
Response.write(<br><b>NodeName:</b>&node.nodename&<br><b>NodeTypeString:</b>&node.nodetypestring&<br><b>NodeVal ue:</b>&node.nodevalue&<br><b>النص:</b>&node.text&<br><b>node.childnodes.length:</b>&node.childnodes.length&<p>)
إذا عقدة.childnodes.length<>0 ثم
لـ i=0 إلى العقدة.childnodes.length-1
الحصول على العقد (node.childnodes (i))
التالي
نهاية إذا
النهاية الفرعية
بعد استخدام هذه الوظيفة، يمكنك أن ترى أن ملف data.xml هذا يحتوي على 10 عقد.
يمكن تحديد موقع هذه العقد بسهولة:
xmldoc
xmldoc.childnodes(0)
xmldoc.childnodes(1)
xmldoc.childnodes(1).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0).text
xmldoc.childnodes(1).childnodes(0).childnodes(1)
xmldoc.childnodes(1).childnodes(0).childnodes(1).text
xmldoc.childnodes(1).childnodes(0).childnodes(2)
xmldoc.childnodes(1).childnodes(0).childnodes(2).text
هل تحديد الموضع بسيط للغاية؟ هناك طريقة أخرى، مثل تحديد موضع <الاسم>؟
xmldoc.selectsinglenode(//الاسم)
رقم 4--تعيين قيمة للعقدة (تعديل قيمة العقدة)
بمجرد أن تتعلم كيفية تحديد موقع العقد واستخدام سماتها، يمكنك تعديل القيم أو تعيينها.
على سبيل المثال، قم بتغيير قيمة <name> من caca إلى wawa
xmldoc.selectsinglenode(//name).text=wawa
xmldoc.save(server.mappath(data.xml))
منتهي!
رقم 5--إنشاء عقدة جديدةCreatenewNode
استخدم createelement أو createnode(,,)
على سبيل المثال: قم بإنشاء <age> جديد ضمن السجل، وسيستغرق الأمر جملة واحدة فقط:
xmldoc.selectsinglenode(//record).appendchild(xmldoc.createelement(<age>))
قم بتعيين قيمة إلى <العمر>
xmldoc.selectsinglenode(//age).text=20
xmldoc.save(server.mappath(data.xml))
منتهي!
رقم 6--حذف عقدةDeleteNode
يجب عليك تحديد العقدة الأصلية للعقدة التي تريد حذفها، بالإضافة إلى خصائص هذه العقدة
على سبيل المثال: احذف عقدة <qq>
xmldoc.selectsinglenode(//record).removechild(xmldoc.selectsinglenode(//qq))
على سبيل المثال: احذف <record> بـ <name>=caca
xmldoc.selectsinglenode(//records).removechild(xmldoc.selectsinglenode(//record[name='caca']))
xmldoc.save(server.mappath(data.xml))
منتهي!
طالما أنك تتقن هذه الرموز الستة وتستخدم asp للتحكم في قاعدة بيانات xml، فهذا كل شيء تقريبًا...
================================================================================================== ======
"إنشاء كائن DOM."
تعيين objDom=server.CreateObject(MicroSoft.XMLDom)
"الحصول على بيانات XML."
الطريقة الأولى: احصل على بيانات XML الخاصة بملف XML
objDom.load(c:/test.xml)
'الطريقة الثانية: احصل على بيانات سلسلة بيانات XML
objDom.loadxml(<people><اسم الرجل=sd/></people>)
'إنشاء كائن عقدة
تعيين Newnode=objDom.CreateElement(people)
"أعط هذه العقدة قيمة."
Newnode.Text=People
"أضف سمات إلى هذه العقدة."
تعيين NewAttribute=objDom.CreateNode(attribute,name,)
NewAttribute.Text= تشانغ سان
Newnode.SetAttributeNode NewAttribute
'أضف العقد الفرعية إلى هذه العقدة
تعيين NewnodeChild=objDom.CreateElement(address)
Newnode.appendChild NewnodeChild
'احفظ كائن العقدة هذا
objDom.appendChild Newnode
objDom.save(c:/test.xml)
"ابحث عن كائن عقدة."
تعيين objtofind=objdom.documentElement.SelectSingleNode(//people/man)
"احصل على اسم العقدة وقيمة العقدة وقيمة سمة معينة وكل ملف XML الخاص بكائن العقدة هذا
Nodename=objtofind.nodename
قيمة العقدة=objtofind.text
objtofind.GetAttributeNode(name).NodeValue 'قيمة السمة المسماة name
"الحصول على كائن عقدة السمة."
تعيين objattrtofind=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name)
"احصل على اسم السمة وقيمة السمة لهذه العقدة
Nodeattrname=objattrtofind.nodename
Nodeattrvalue=objattrtofind.nodevalue
'حذف كائن العقدة
set objnode=objdom.documentElement.SelectSingleNode(//people/man) 'العقدة المراد حذفها
تعيين objparentnode=objdom.documentElement.SelectSingleNode(//people) 'العقدة الأصلية للعقدة المراد حذفها
objparentnode.removeChild objnode
'احصل على مجموعة نقاط البايت للعقدة
تعيين objnodes=objdom.documentElement.SelectSingleNode(//people/man).ChildNodes
كرر على هذه المجموعة
الطريقة 1
لكل عنصر في objnodes
Response.write element.nodename تسمية البايت
استجابة. كتابة عنصر. قيمة نقطة بايت النص
التالي
الطريقة 2
domlength=objnodes.length
لأني = 0 إلى domlength-1
Response.write objnodes.childnodes(i).nodename تسمية البايت
Response.write objnodes.childnodes(i).قيمة نقطة بايت النص
التالي
"احصل على مجموعة سمات العقدة
تعيين objnodes=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name).attributes
كرر على هذه المجموعة
لكل عنصر في objnodes
اسم السمة Response.write element.nodename
قيمة السمة Response.write element.nodevalue
التالي
بمجرد أن تتمكن من استخدام كائن xmldom بمهارة لتشغيل ملفات xml، يمكنك الاستمتاع بكائن xmlhttp لتنفيذ العديد من الوظائف ضمن asp.
-------------------------------------------------- ----------------------------------------
على الرغم من أن ASP يمكنه فقط تشغيل ملفات XML، إلا أنه يكفي لمطوري البرامج العامة.
في السابق، لم أتعرض كثيرًا للغة XML، ثم اكتشفت تدريجيًا أن XML تتمتع بالكثير من وسائل الراحة في تخزين البيانات. على الرغم من أن الأمان ليس جيدًا (في رأيي)، فهو بالفعل خيار جيد جدًا لتخزين البيانات العامة.
اليوم، نظرًا لضرورة استخدام XML على موقع ويب، سأقوم بعمل بعض الملخصات هنا (سيتم استخدامها لاحقًا):
==============
أولاً، قم بتنظيم ASP لقراءة ملف XML
كود default.asp
<%
العقدة الخافتة،i،nodecount
تعيين Doc = CreateObject(Microsoft.XMLDOM)
Doc.async = خطأ
Doc.load(Server.MapPath(data.xml))
تعيين الجذر = Doc.documentElement
تعيين العقدة = root.childNodes
NodeCount = NodeLis.length
بالنسبة إلى i=1 إلى NodeCount
تعيين العقدة =NodeLis.nextNode()
تعيين التكلفة = العقدة.attributes.getNamedItem(التكلفة)
%>
سجل <%=i%>:
<عرض الجدول=50% حد=1>
<تر>
<td width=43rowspan=2><img src=<%=node.selectSingleNode(img).text%>/></td>
<td width=46>عنوان الكتاب</td>
<td width=48>دار النشر</td>
<td width=42>السعر</td>
</tr>
<تر>
<TD>
<%=node.selectSingleNode(name).text%>
</TD>
<TD>
<%=node.selectSingleNode(publisher).text%>
</TD>
<TD>
<%= cost.text%>
</TD>
</tr>
</الجدول>
<%
التالي
%>
==================
التالي هو محتوى البيانات Data.xml
<?xml version=1.0 encoding=UTF-8?>
<البيانات>
<تكلفة الكتاب=56>
<الاسم>دريمويفر</الاسم>
<publisher>مطبعة السكك الحديدية الصينية</publisher>
<img>img/dw.jpg</img>
</كتاب>
<تكلفة الكتاب=62>
<الاسم>فلاش</الاسم>
<publisher>مطبعة السكك الحديدية الصينية</publisher>
<img>img/flash.jpg</img>
</كتاب>
<تكلفة الكتاب = 48>
<الاسم>الألعاب النارية</name>
<publisher>مطبعة السكك الحديدية الصينية</publisher>
<img>img/fw.jpg</img>
</كتاب>
</البيانات>