رمز تشغيل xmldom لتسهيل التعليمات البرمجية التي تحتاج إلى دمجها مع xml <script language=vbscript runat=server>
'======================================================================== = ===========
المؤلف: كن نفسك
'الزمن: 2005-3-15
================================================================================================== ==========
فئة XMLClass
objXml الخاص
ملف XML الخاص
مسار xml خاص
'//============================================================= = ============
'<!--الأحداث أثناء تهيئة الفصل وتسجيل الخروج-->
فئة فرعية_تهيئة
تعيين objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = true
objXml.async = خطأ
نهاية الفرعية
SubClass_Terminate
تعيين objXml = لا شيء
نهاية الفرعية
'//============================================================= = ============
'<!--إنشاء مستند XML جديد-->
وظيفة عامة إنشاء جديد (الاسم)
تعيين tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
قم بتعيين CreateNew = tmpNode
وظيفة النهاية
'<!--قراءة مستند XML من الخارج -->
الوظيفة العامة OpenXml(sPath)
OpenXml=خطأ
sPath=Server.MapPath(sPath)
'الاستجابة. الكتابة (sPath)
xmlPath = sPath
إذا objXml.load(sPath) ثم
قم بتعيين xmlDoc = objXml.documentElement
OpenXml=صحيح
نهاية إذا
وظيفة النهاية
'<!--قراءة سلسلة XML من الخارج -->
التحميل الفرعي العام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)
وظيفة النهاية
'//============================================================= ======================================================================
'<!--حفظ مستند XML-->
الوظيفة العامة SaveXML()
'تعليمات المعالجة ()
objXml.save(xmlPath)
وظيفة النهاية
'<!--حفظ مستند XML-->
الوظيفة العامة SaveAsXML(sPath)
تعليمات المعالجة()
objXml.save(sPath)
وظيفة النهاية
'//============================================================= ===========================================================================
""إحصاءات ذات صلة""
'<!--احصل على العقدة الجذرية-->
خاصية الحصول على الجذر
تعيين الجذر = xmlDoc
نهاية الملكية
'<!--احصل على عدد العقد الفرعية ضمن العقدة الجذرية-->
خاصية الحصول على الطول
الطول = xmlDoc.childNodes.length
نهاية الملكية
'//============================================================= ===========================================================================
""الاختبارات ذات الصلة""
خاصية GetTestNode
TestNode = xmlDoc.childNodes(0).text
نهاية الملكية
نهاية الفصل
</script>