บันทึกรหัสสองชิ้นต่อไปนี้หนึ่งชิ้นจะถูกบันทึกเป็น readxml.asp และอื่น ๆ จะถูกบันทึกเป็น test.xml วางไว้ในไดเรกทอรีเดียวกันและดีบักโปรแกรม ฉันได้อธิบายไว้ในโปรแกรม การอ่านโค้ดสามารถทำให้เป็นฟังก์ชัน readxml และอ่านค่าที่แตกต่างกันของบันทึกข้อมูลที่แตกต่างกันของ XML โดยใช้พารามิเตอร์อินพุต การปรับตัวของโปรแกรมนี้มาจากอินเทอร์เน็ต โปรดยกโทษให้ฉันสำหรับความแตกต่างใด ๆ
การคัดลอกรหัสมีดังนี้:
-
dimxml, objnode, objatr, ncntchd, ncntatr
setxml = server.createObject ("microsoft.xmldom"))
xml.async = false
xml.load (server.mappath ("test.xml"))))
setObJnode = xml.DocumentElement
ncntchd = objnode.childnodes.length -1
'สิ่งนี้สามารถกำหนดค่าของ ASP ที่อ่านไฟล์ XML และกำหนดข้อมูลการอ่านได้โดยผ่านค่านี้
fori = 0toncntchd
setObjatr = objnode.childnodes.item (i)
ncntattr = objattr.attributes.length -1
'เดินผ่านบันทึกทั้งหมดในบันทึกบันทึกเริ่มต้นจาก 0
'http://www.knowsky.com/
forj = 0toncntatr
response.writeobjattr.attributes.item (j) .Text & "<br>"
ต่อไป
Response.write "<br>"
ต่อไป
setobjatr = ไม่มีอะไร
setObJnode = ไม่มีอะไร
setxml = ไม่มีอะไร
-
ไฟล์ XML
การคัดลอกรหัสมีดังนี้:
ต่อไปนี้เป็นรหัสโปรแกรม:
<? xMlVersion = "1.0" การเข้ารหัส = "UTF-8"?>
<root>
<rowid = "1" compname = "jiuqiaoxuan" addr = "ถนนปักกิ่ง, เขต Yuexiu, เมืองกวางโจว, มณฑลกวางตุ้ง" รหัสไปรษณีย์ = "510000" โทร = "8620-8333" พื้นที่ = "Yuexiu District" เยี่ยมชม = "0" ลำดับความสำคัญ = "999999999" Zhuangtai = "ล่าสุด"/>
<rowid = "2" compname = "zhou zai" addr = "เมืองกวางโจว, มณฑลกวางตุ้ง" รหัสไปรษณีย์ = "510000" โทร = "8620-8330" prodserv = "ธุรกิจอาหารจานด่วน" ลำดับความสำคัญ = "9999999999" Zhuangtai = "ล่าสุด"/>>>>
<rowid = "3" compname = "ร้านอาหาร cornaise" addr = "เขต Yuexiu, เมืองกวางโจว, มณฑลกวางตุ้ง" รหัสไปรษณีย์ = "510000" โทร = "8620-837 District "เยี่ยมชม =" 0 "ลำดับความสำคัญ =" 9999999999 "Zhuangtai =" ล่าสุด "/>
</root>
คำอธิบายสั้น ๆ ของวัตถุและวิธีการ DOM:
คุณสมบัติ DocumentElement ยืนยันโหนดรูท (รูท) ของไฟล์ XML
SelectSingLenode ส่งคืนโหนดแรกที่ตรงกับสไตล์
เมธอด loadxml โหลดไฟล์ XML หรือส่วนของสตริง
วิธี HaschildNodes หากโหนดที่ระบุมีโหนดลูกหนึ่งโหนดหรือมากกว่าค่าที่ส่งคืนจะเป็นจริง