فئة تشغيل ASP XML، يمكن للأصدقاء الذين يرغبون في تعلم عملية XML الرجوع إليها. انسخ الكود كما يلي: Class XMLClass
objXml الخاص
ملف XML الخاص
مسار xml خاص
'//============================================================= = ============
'
فئة فرعية_تهيئة
تعيين objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = true
objXml.async = خطأ
نهاية الفرعية
SubClass_Terminate
تعيين objXml = لا شيء
نهاية الفرعية
'//============================================================= = ============
'
وظيفة عامة إنشاء جديد (الاسم)
تعيين tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
قم بتعيين CreateNew = tmpNode
وظيفة النهاية
'
الوظيفة العامة OpenXml(sPath)
OpenXml=خطأ
sPath=Server.MapPath(sPath)
'الاستجابة. الكتابة (sPath)
xmlPath = sPath
إذا objXml.load(sPath) ثم
قم بتعيين xmlDoc = objXml.documentElement
OpenXml=صحيح
نهاية إذا
وظيفة النهاية
'
التحميل الفرعي العامXml(sStr)
objXml.loadXML(sStr)
قم بتعيين xmlDoc = objXml.documentElement
نهاية الفرعية
InceptXml الفرعي العام (xObj)
قم بتعيين objXml = xObj
قم بتعيين xmlDoc = xObj.documentElement
نهاية الفرعية
'//============================================================= = ============
'
الوظيفة العامة AddNode(sNode,rNode)
اسم عقدة sNode STRING
يضيف 'rNode OBJECT مرجع العقدة العليا
'======================================================================== = ============
DimTmpNode
تعيين TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
قم بتعيين AddNode = TmpNode
وظيفة النهاية
'
الوظيفة العامة AddAttribute(sName,sValue,oNode)
' sName STRING اسم السمة
'sValue STRING قيمة السمة
' كائن oNode OBJECT مع السمات المضافة
'======================================================================== = ============
oNode.setAttribute sName، sValue
وظيفة النهاية
'
الوظيفة العامة AddText(FStr،cdBool،oNode)
خافت tmpText
إذا كان cdBool ثم
تعيين tmpText = objXml.createCDataSection(FStr)
آخر
تعيين tmpText = objXml.createTextNode(FStr)
نهاية إذا
oNode.appendChild tmpText
وظيفة النهاية
'======================================================================== ================================================================================================= = =====
'
الوظيفة العامة GetAtt(aName,oNode)
'aName STRING اسم السمة
'مرجع عقدة oNode OBJECT
'======================================================================== = ============
خافت tmpValue
tmpValue = oNode.getAttribute(aName)
GetAtt = tmpValue
وظيفة النهاية
'
الوظيفة العامة GetNodeName(oNode)
'مرجع عقدة oNode OBJECT
GetNodeName = oNode.nodeName
وظيفة النهاية
'
الوظيفة العامة GetNodeText(oNode)
'مرجع عقدة oNode OBJECT
GetNodeText = oNode.childNodes(0).nodeValue
وظيفة النهاية
'
الوظيفة العامة GetNodeType(oNode)
'مرجع عقدة oNode OBJECT
GetNodeType = oNode.nodeValue
وظيفة النهاية
'
الوظيفة العامة FindNodes(sNode)
خافت tmpNodes
تعيين tmpNodes = objXml.getElementsByTagName(sNode)
قم بتعيين FindNodes = tmpNodes
وظيفة النهاية
'
الوظيفة العامة FindNode(sNode)
DimTmpNode
تعيين TmpNode=objXml.selectSingleNode(sNode)
قم بتعيين FindNode = TmpNode
وظيفة النهاية
'
الوظيفة العامة DelNode(sNode)
خافت TmpNodes، Nodesss
تعيين TmpNodes=objXml.selectSingleNode(sNode)
قم بتعيين Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
وظيفة النهاية
'
استبدال الوظيفة العامة (sNode، sText، cdBool)
'replaceChild
خافت TmpNodes، tmpText
تعيين TmpNodes=objXml.selectSingleNode(sNode)
'AddText sText,cdBool,TmpNodes
إذا كان cdBool ثم
تعيين tmpText = objXml.createCDataSection(sText)
آخر
تعيين tmpText = objXml.createTextNode(sText)
نهاية إذا
TmpNodes.replaceChild tmpText،TmpNodes.firstChild
وظيفة النهاية
تعليمات معالجة الوظائف الخاصة
'//--إنشاء إعلان XML
خافت objPi
تعيين objPi = objXML.createProcessingInstruction(xml, version=&chr(34)&1.0&chr(34)& encoding=&chr(34)&gb2312&chr(34))
'//--إلحاق حياة xml بمستند xml
objXML.insertBefore objPi، objXML.childNodes(0)
وظيفة النهاية
'//============================================================= ======================================================================
'
الوظيفة العامة SaveXML()
'تعليمات المعالجة ()
objXml.save(xmlPath)
وظيفة النهاية
'
الوظيفة العامة SaveAsXML(sPath)
تعليمات المعالجة()
objXml.save(sPath)
وظيفة النهاية
'//============================================================= ===========================================================================
""إحصاءات ذات صلة""
'
خاصية الحصول على الجذر
تعيين الجذر = xmlDoc
نهاية الملكية
'
خاصية الحصول على الطول
الطول = xmlDoc.childNodes.length
نهاية الملكية
'//============================================================= ===========================================================================
""الاختبارات ذات الصلة""
خاصية GetTestNode
TestNode = xmlDoc.childNodes(0).text
نهاية الملكية
نهاية الفصل
الطرق الرئيسية وتنفيذ ASP لتشغيل ملفات XML على جانب الخادم من خلال XMLDom
بالنسبة لأحجام البيانات الصغيرة، تتمتع ملفات XML بالعديد من المزايا مقارنة بـ ACCESS في الاسترجاع والتحديث.
لقد اختبرت ذات مرة دون استخدام قاعدة بيانات وقمت بتخزين معلومات أعضاء موقع الويب ومعلومات بيانات المنتج ومعلومات المعاملات ومعلومات تخصيص موقع الويب في ثلاثة ملفات بتنسيق XML، وكانت نتائج التشغيل طبيعية جدًا، لكنني لم أشعر بذلك غير متأكد.
دعونا نتحدث عن الطرق الرئيسية لإنشاء عمليات 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 'قيمة السمة مع اسم اسم السمة
"الحصول على كائن عقدة السمة."
تعيين 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 على جانب الخادم من خلال XMLDom
فيفي، لماذا لا تقدمين استخدام @؟ بدون هذا، ستكون أشياء كثيرة غير مريحة.
XML، يطلق عليه بعض الأشخاص أيضًا تقنية ضغط البيانات، وكما يوحي الاسم، يمكن استخدام XML كقاعدة بيانات.
ولذلك، يمكننا أن نفكر في XML كقاعدة بيانات صغيرة. لماذا سميت صغيرة؟ بسبب وظائف XML نفسها وسهولة تطبيقها، لا تزال هناك اختلافات معينة مع قواعد البيانات. فلماذا نستخدم لغة XML؟ لأنه في بعض الأحيان تقوم بعض تطبيقاتنا بالوصول إلى البيانات، ولكن إذا تم استخدام قاعدة بيانات، فإن العرض ليس مرنًا ومريحًا بدرجة كافية. في هذا الوقت، يجب أن نستخدمه مع XML.
وبما أن ملف XML يمكن اعتباره قاعدة بيانات، فإن خطوته الأولى هي بالطبع إنشاء كائن ارتباط. (خذ ASP+xml كمثال)
طريقة الإنشاء هي نفس قاعدة بيانات الارتباط، استخدم server.createobject للإنشاء.
وإليك الطريقة:
تعيين xmlDoc= Server.CreateObject(microsoft.xmldom)
xmlDoc.async=false
xmldata=المسار المطلق لمصدر البيانات
xmlDoc.load xmldata 'استخدم طريقة التحميل للربط هنا
نظرًا لأن تنسيق بيانات XML سهل الاستخدام نسبيًا، فقد يكون تنسيق البيانات غير قانوني لأسباب بشرية أو لأسباب أخرى. إذا واصلت استخدامه في هذا الوقت، فسوف يتسبب ذلك في نفاد معالجة البرنامج. غالبًا ما نقوم بذلك بعد إنشاء كائن الارتباط للتحقق من صحة تنسيق البيانات.
وإليك الطريقة:
إذا كان xmlDoc.parseError.errorCode<>0 إذن
.... معالجة الأخطاء
<%
'----------
'مقدمة البرنامج: أكمل لغة asp لإضافة وحذف وتعديل وعرض نص العقدة المحددة في مستند XML
'معلمات الإدخال: لا شيء
'معلمات التصدير: لا شيء
'--------
'اسم الوظيفة: ConnectXml()
'معلمات الإدخال: اسم ملف xml المراد توصيله أو فتحه
'معلمات التصدير: لا شيء
'قيمة الإرجاع: ConnectXml=0، XMLMorntekDocument هو كائن يقوم بتحميل مستند XML بنجاح.
'ConnectXml<>0، ثم اطبع رسالة الخطأ strError
'--------
خافت XMLMorntekDocument
وظيفة ConnectXml (اسم الملف)
خافت strSourceFile
strSourceFile = Server.MapPath(اسم الملف)
تعيين XMLMorntekDocument = Server.CreateObject(Microsoft.XMLDOM)
XMLMorntekDocument.async = خطأ
XMLMorntekDocument.load(strSourceFile)
ConnectXml=XMLMorntekDocument.parseerror.errorcode
إذا كان XMLMorntekDocument.parseerror.errorcode<>0 ثم
strError=<h2>خطأ&XMLMorntekDocument.parseerror.errorcode&</h2>
strError=strError&XMLMorntekDocument.parseerror.reason&<br>
strError=strError&XMLMorntekDocument.parseerror.url&<br>
strError=strError&XMLMorntekDocument.parseerror.line&<br>
strError=strError&XMLMorntekDocument.parseerror.filepos&<br>
strError=strError&XMLMorntekDocument.parseerror.srcText&<br>
استجابة.كتابة خطأ
نهاية إذا
وظيفة النهاية
'--------
'اسم الوظيفة: CloseXml()
'معلمات الإدخال: لا شيء
'معلمات التصدير: لا شيء
'--------
الدالة CloseXml(XMLMorntekDocument)
إذا كان IsObject(XMLMorntekDocument) ثم
تعيين XMLMorntekDocument=لا شيء
نهاية إذا
وظيفة النهاية
'--------
'اسم الوظيفة: SelectXmlNodeText(elementname)
'معلمة الإدخال: اسم العنصر اسم العنصر
'معلمات التصدير: لا شيء
'--------
الدالة SelectXmlNodeText(اسم العنصر)
elementname=//&elementname
temp=XMLMorntekDocument.selectSingleNode(elementname).text
حددXmlNodeText= server.htmlencode(temp)
وظيفة النهاية
'--------
'اسم الوظيفة: InsertXmlNodeText(befelementname,elementname,elementtext)
'معلمة الإدخال: اسم العنصر اسم العنصر المدرج
يقوم befelementname بإدراج عنصر قبل اسم هذا العنصر
'elementtext نص العنصر المدرج
'معلمات التصدير: لا شيء
'--------
وظيفة InsertXmlNodeText(befelementname,elementname,elementtext)
عنصر خافت
تعيين befelement=XMLMorntekDocument.selectSingleNode(//&befelementname)
تعيين العنصر = XMLMorntekDocument.createelement(elementname)
befelement.insertBefore العنصر،befelement.firstchild
element.text=elementtext
وظيفة النهاية
'--------
'اسم الوظيفة: UpdateXmlNodeText(elementname,newelementtext)
'معلمة الإدخال: اسم العنصر اسم العنصر
' النص الجديد لعنصر النص الجديد
'معلمات التصدير: لا شيء
'--------
وظيفة UpdateXmlNodeText (اسم العنصر، نص العنصر الجديد)
عنصر خافت
تعيين العنصر=XMLMorntekDocument.selectSingleNode(//&elementname)
element.text=newelementtext
وظيفة النهاية
'--------
'اسم الوظيفة: حذفXmlNodeText(اسم العنصر)
'معلمة الإدخال: اسم العنصر اسم العنصر
'معلمات التصدير: لا شيء
'--------
وظيفة حذفXmlNodeText(اسم العنصر)
XMLMorntekDocument.selectSingleNode(//&elementname).text =
وظيفة النهاية
%>
______
لم يتم اختبار هذه المقالة وجدواها غير معروفة.