คลาสการดำเนินการ ASP XML เพื่อนที่ต้องการเรียนรู้การดำเนินการ xml สามารถอ้างอิงได้ คัดลอกรหัส รหัสจะเป็นดังนี้: คลาส XMLClass
objXml ส่วนตัว
xmlDoc ส่วนตัว
xmlPath ส่วนตัว
'//===============================================' = =============
-
Class_initialize ย่อย
ตั้งค่า objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = จริง
objXml.async = เท็จ
จบหมวดย่อย
SubClass_Terminate
ตั้ง objXml = ไม่มีเลย
จบหมวดย่อย
'//===============================================' = =============
-
ฟังก์ชั่นสาธารณะ CreateNew (sName)
ตั้งค่า tmpNode = objXml.createElement(sName)
objXml.appendChild (tmpNode)
ตั้งค่า CreateNew = tmpNode
ฟังก์ชันสิ้นสุด
-
ฟังก์ชั่นสาธารณะ OpenXml (sPath)
OpenXml=เท็จ
sPath=Server.MapPath(sPath)
'การตอบสนองเขียน (sPath)
xmlPath = สพาธ
ถ้า objXml.load(sPath) แล้ว
ตั้งค่า xmlDoc = objXml.documentElement
OpenXml=จริง
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
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)
ฟังก์ชันสิ้นสุด
'//===============================================' = ==============================
-
ฟังก์ชั่นสาธารณะ SaveXML()
'คำสั่งการประมวลผล()
objXml.บันทึก(xmlPath)
ฟังก์ชันสิ้นสุด
-
ฟังก์ชั่นสาธารณะ SaveAsXML(sPath)
คำแนะนำในการประมวลผล()
objXml.บันทึก(sPath)
ฟังก์ชันสิ้นสุด
'//===============================================' = ===================================
'สถิติที่เกี่ยวข้อง
-
คุณสมบัติรับรูท
ตั้งค่ารูท = xmlDoc
สิ้นสุดคุณสมบัติ
-
คุณสมบัติรับความยาว
ความยาว = xmlDoc.childNodes.length
สิ้นสุดคุณสมบัติ
'//===============================================' = ===================================
'การทดสอบที่เกี่ยวข้อง
คุณสมบัติ GetTestNode
TestNode = xmlDoc.childNodes(0).ข้อความ
สิ้นสุดคุณสมบัติ
จบคลาส
วิธีการหลักและการใช้งานไฟล์ XML ปฏิบัติการ ASP บนฝั่งเซิร์ฟเวอร์ผ่าน XMLDom
สำหรับข้อมูลปริมาณน้อย ไฟล์ xml มีข้อได้เปรียบเหนือ ACCESS หลายประการในการเรียกค้นและอัปเดต
ฉันเคยทดสอบโดยไม่ใช้ฐานข้อมูลและจัดเก็บข้อมูลสมาชิกของเว็บไซต์ ข้อมูลผลิตภัณฑ์ ข้อมูลธุรกรรม และข้อมูลการปรับแต่งเว็บไซต์ไว้ในไฟล์ xml สามไฟล์ รู้สึกว่ามันเร็วกว่าฐานข้อมูลมาก ทดสอบดูครับ ไม่แน่ใจ
เรามาพูดถึงวิธีการหลักในการสร้าง การสืบค้น การแก้ไข ฯลฯ การดำเนินการ xml
'สร้างวัตถุ DOM
ตั้ง objDom=server.CreateObject (MicroSoft.XMLDom)
'รับข้อมูล xml
'วิธีที่ 1 รับข้อมูล xml ของไฟล์ xml
objDom.load(c:/test.xml)
'วิธีที่ 2 รับข้อมูลของสตริงข้อมูล xml
objDom.loadxml(<คน><ชื่อผู้ชาย=sd/></people>)
'สร้างวัตถุโหนด
ตั้งค่า Newnode=objDom.CreateElement(people)
'ให้ค่าโหนดนี้
Newnode.Text=ผู้คน
'เพิ่มคุณสมบัติให้กับโหนดนี้
ตั้งค่า NewAttribute=objDom.CreateNode(attribute,name,)
NewAttribute.Text= จางซาน
Newnode.SetAttributeNode ใหม่แอตทริบิวต์
'เพิ่มโหนดย่อยให้กับโหนดนี้
ตั้งค่า NewnodeChild=objDom.CreateElement(ที่อยู่)
Newnode.appendChild NewnodeChild
'บันทึกวัตถุโหนดนี้
objDom.appendChild Newnode
objDom.บันทึก(c:/test.xml)
'ค้นหาวัตถุโหนด
ตั้ง objtofind=objdom.documentElement.SelectSingleNode(//คน/คน)
'รับชื่อโหนด ค่าโหนด ค่าแอตทริบิวต์ที่แน่นอน และ xml ทั้งหมดของวัตถุโหนดนี้
nodename=objtofind.nodename
nodevalue=objtofind.text
objtofind.GetAttributeNode(name).Nodevalue 'ค่าแอตทริบิวต์ที่มีชื่อแอตทริบิวต์
'รับวัตถุโหนดแอตทริบิวต์
ตั้ง objattrtofind=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(ชื่อ)
'รับชื่อแอตทริบิวต์และค่าแอตทริบิวต์ของโหนดนี้
nodeattrname=objattrtofind.nodename
nodeattrvalue=objattrtofind.nodevalue
'ลบวัตถุโหนด
set objnode=objdom.documentElement.SelectSingleNode(//people/man) 'โหนดที่จะลบ
set objparentnode=objdom.documentElement.SelectSingleNode(//people) 'โหนดหลักของโหนดที่จะถูกลบ
objparentnode.removeChild objnode
'รับชุดจุดไบต์ของโหนด
ตั้ง objnodes = objdom.documentElement.SelectSingleNode(//people/man).ChildNodes
ทำซ้ำคอลเลกชันนี้
วิธีที่ 1
สำหรับแต่ละองค์ประกอบใน objnodes
การตั้งชื่อไบต์ response.write element.nodename
response.write element.text ค่าจุดไบต์
ต่อไป
วิธีที่ 2
domlength=objnodes.ความยาว
สำหรับ i = 0 ถึง domlength-1
response.write objnodes.childnodes(i).nodename การตั้งชื่อไบต์
response.write objnodes.childnodes(i).text ค่าจุดไบต์
ต่อไป
'รับชุดแอตทริบิวต์ของโหนด
ตั้งค่า objnodes=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name).attributes
ทำซ้ำคอลเลกชันนี้
สำหรับแต่ละองค์ประกอบใน objnodes
ชื่อแอ็ตทริบิวต์ response.write element.nodename
ค่าแอตทริบิวต์ response.write element.nodevalue
ต่อไป
เมื่อคุณสามารถใช้วัตถุ xmldom เพื่อจัดการไฟล์ xml ได้อย่างชำนาญแล้ว คุณก็สามารถเพลิดเพลินได้
อ็อบเจ็กต์ xmlhttp ใช้เพื่อรับรู้ถึงฟังก์ชันต่างๆ มากมายภายใต้ asp
เรื่อง: [โอน] วิธีการหลักและการใช้งานไฟล์ XML ปฏิบัติการ ASP บนฝั่งเซิร์ฟเวอร์ผ่าน XMLDom
Feifei ทำไมคุณไม่แนะนำการใช้งาน @ หากไม่มีสิ่งนี้หลายๆ อย่างจะไม่สะดวก
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>
การตอบสนอง เขียน strError
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
-
'ชื่อฟังก์ชัน: CloseXml()
'พารามิเตอร์รายการ: ไม่มี
'พารามิเตอร์การส่งออก: ไม่มี
-
ฟังก์ชั่น CloseXml (XMLMorntekDocument)
ถ้า IsObject(XMLMorntekDocument) แล้ว
ตั้งค่า XMLMorntekDocument=nothing
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
-
'ชื่อฟังก์ชัน: SelectXmlNodeText (ชื่อองค์ประกอบ)
'พารามิเตอร์รายการ: elementname ชื่อขององค์ประกอบ
'พารามิเตอร์การส่งออก: ไม่มี
-
ฟังก์ชั่น SelectXmlNodeText (ชื่อองค์ประกอบ)
elementname=//&ชื่อองค์ประกอบ
temp=XMLMorntekDocument.selectSingleNode(elementname).text
selectXmlNodeText= server.htmlencode(อุณหภูมิ)
ฟังก์ชั่นสิ้นสุด
-
'ชื่อฟังก์ชัน: InsertXmlNodeText (befelementname, elementname, elementtext)
'พารามิเตอร์รายการ: elementname ชื่อขององค์ประกอบที่แทรก
' befelementname แทรกองค์ประกอบก่อนชื่อขององค์ประกอบนี้
'elementtext ข้อความขององค์ประกอบที่แทรก
'พารามิเตอร์การส่งออก: ไม่มี
-
ฟังก์ชั่น InsertXmlNodeText (befelementname, elementname, elementtext)
องค์ประกอบสลัวองค์ประกอบ
ตั้ง befelement=XMLMorntekDocument.selectSingleNode(//&befelementname)
ชุดองค์ประกอบ = XMLMorntekDocument.createelement (ชื่อองค์ประกอบ)
befelement.insertBefore องค์ประกอบ befelement.firstchild
องค์ประกอบ.ข้อความ=องค์ประกอบข้อความ
ฟังก์ชั่นสิ้นสุด
-
'ชื่อฟังก์ชัน: UpdateXmlNodeText (ชื่อองค์ประกอบ ข้อความใหม่)
'พารามิเตอร์รายการ: elementname ชื่อขององค์ประกอบ
' ข้อความใหม่ขององค์ประกอบข้อความ newelement
'พารามิเตอร์การส่งออก: ไม่มี
-
ฟังก์ชั่น UpdateXmlNodeText (ชื่อองค์ประกอบข้อความใหม่)
องค์ประกอบสลัว
ชุดองค์ประกอบ=XMLMorntekDocument.selectSingleNode(//&ชื่อองค์ประกอบ)
องค์ประกอบ.ข้อความ=องค์ประกอบข้อความใหม่
ฟังก์ชั่นสิ้นสุด
-
'ชื่อฟังก์ชัน: DeleteXmlNodeText (ชื่อองค์ประกอบ)
'พารามิเตอร์รายการ: elementname ชื่อขององค์ประกอบ
'พารามิเตอร์การส่งออก: ไม่มี
-
ฟังก์ชั่น DeleteXmlNodeText (ชื่อองค์ประกอบ)
XMLMorntekDocument.selectSingleNode(//&elementname).text =
ฟังก์ชั่นสิ้นสุด
-
-
บทความนี้ไม่ได้รับการทดสอบและไม่ทราบความเป็นไปได้