รหัสการดำเนินการ xmldom เพื่ออำนวยความสะดวกรหัสที่ต้องรวมกับ xml <script language=vbscript runat=server>
'=================================================' = ===========
'ผู้เขียน: เป็นตัวของตัวเอง
เวลา: 15-03-2548
================================================== ==========
คลาส XMLClass
objXml ส่วนตัว
xmlDoc ส่วนตัว
xmlPath ส่วนตัว
'//===============================================' = =============
'<!--เหตุการณ์ระหว่างการเริ่มต้นชั้นเรียนและการออกจากระบบ-->
Class_initialize ย่อย
ตั้งค่า objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = จริง
objXml.async = เท็จ
จบหมวดย่อย
SubClass_Terminate
ตั้ง objXml = ไม่มีเลย
จบหมวดย่อย
'//===============================================' = =============
'<!--สร้างเอกสาร XML ใหม่-->
ฟังก์ชั่นสาธารณะ CreateNew (sName)
ตั้งค่า tmpNode = objXml.createElement(sName)
objXml.appendChild (tmpNode)
ตั้งค่า CreateNew = tmpNode
ฟังก์ชันสิ้นสุด
'<!--อ่านเอกสาร XML จากภายนอก -->
ฟังก์ชั่นสาธารณะ OpenXml (sPath)
OpenXml=เท็จ
sPath=Server.MapPath(sPath)
'การตอบสนองเขียน (sPath)
xmlPath = สพาธ
ถ้า objXml.load(sPath) แล้ว
ตั้งค่า xmlDoc = objXml.documentElement
OpenXml=จริง
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'<!--อ่านสตริง XML จากภายนอก -->
LoadXml ย่อยสาธารณะ (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)
Dim 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)
'แทนที่เด็ก
หรี่ TmpNodes, tmpText
ตั้งค่า TmpNodes=objXml.selectSingleNode(sNode)
'เพิ่มข้อความ 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.บันทึก(xmlPath)
ฟังก์ชันสิ้นสุด
'<!--บันทึกเอกสาร XML-->
ฟังก์ชั่นสาธารณะ SaveAsXML (sPath)
คำแนะนำในการประมวลผล()
objXml.บันทึก(sPath)
ฟังก์ชันสิ้นสุด
'//===============================================' = ===================================
'สถิติที่เกี่ยวข้อง
'<!--รับโหนดรูท-->
คุณสมบัติรับรูท
ตั้งค่ารูท = xmlDoc
สิ้นสุดคุณสมบัติ
'<!--รับจำนวนโหนดย่อยภายใต้โหนดรูท-->
คุณสมบัติรับความยาว
ความยาว = xmlDoc.childNodes.length
สิ้นสุดคุณสมบัติ
'//===============================================' = ===================================
'การทดสอบที่เกี่ยวข้อง
คุณสมบัติ GetTestNode
TestNode = xmlDoc.childNodes(0).ข้อความ
สิ้นสุดคุณสมบัติ
จบคลาส
</สคริปต์>