ฉันเคยทดสอบโดยไม่ใช้ฐานข้อมูลและจัดเก็บข้อมูลสมาชิกของเว็บไซต์ ข้อมูลผลิตภัณฑ์ ข้อมูลธุรกรรม และข้อมูลการปรับแต่งเว็บไซต์ไว้ในไฟล์ xml สามไฟล์ รู้สึกว่ามันเร็วกว่าฐานข้อมูลมาก ทดสอบดูครับ ไม่แน่ใจ สำหรับข้อมูลปริมาณน้อย ไฟล์ xml มีข้อได้เปรียบเหนือ ACCESS หลายประการในการเรียกค้นและอัปเดต
ฉันเคยทดสอบโดยไม่ใช้ฐานข้อมูลและจัดเก็บข้อมูลสมาชิกของเว็บไซต์ ข้อมูลผลิตภัณฑ์ ข้อมูลธุรกรรม และข้อมูลการปรับแต่งเว็บไซต์ไว้ในไฟล์ xml สามไฟล์ รู้สึกว่ามันเร็วกว่าฐานข้อมูลมาก ทดสอบดูครับ ไม่แน่ใจ
เรามาพูดถึงวิธีการหลักในการสร้าง การสืบค้น การแก้ไข ฯลฯ การดำเนินการ xml
รหัสโปรแกรม
NO.1--สร้างฐานข้อมูล XML data.xml
คัดลอกรหัสรหัสดังต่อไปนี้:
<?xml เวอร์ชัน=1.0?>
<บันทึก>
<บันทึก>
<ชื่อ>คาคา</ชื่อ>
<qq>154222225</qq>
<อีเมล>[email protected]</email>
</บันทึก>
<บันทึก>
NO.2--สร้าง objectCreateObject
สร้างอ็อบเจ็กต์ของ data.xml ก่อน
ตั้งค่า xmldoc=server.createobjcet(microsoft.xmldom)
xmldoc.load(server.mappath(data.xml)
NO.3--เลือก nodeSelectNode
คุณต้องการหา Node นี้ก่อนว่า data.xml มีกี่ Node ??
ทำด้วยฟังก์ชันแบบเรียกซ้ำ:
คัดลอกรหัสรหัสดังต่อไปนี้:
รับโหนด (xmldoc)
getnodes ย่อย (โหนด)
สลัวฉัน
response.write(<br><b>NodeName:</b>&node.nodename&<br><b>NodeTypeString:</b>&node.nodetypestring&<br><b>NodeVal ue:</b>&node.nodevalue&<br><b>ข้อความ:</b>&node.text&<br><b>node.childnodes.length:</b>&node.childnodes.length&<p>)
ถ้า node.childnodes.length<>0 แล้ว
สำหรับ i=0 ถึง node.childnodes.length-1
getnodes (node.childnodes (i))
ต่อไป
สิ้นสุดถ้า
จบย่อย
หลังจากใช้ฟังก์ชันนี้ คุณจะเห็นว่า data.xml มี 10 โหนด
โหนดเหล่านี้สามารถหาได้ง่าย:
xmldoc.xmldoc
xmldoc.childnodes(0)
xmldoc.childnodes(1)
xmldoc.childnodes(1).โหนดลูก(0)
xmldoc.childnodes(1).โหนดย่อย(0).โหนดย่อย(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0).text
xmldoc.childnodes(1).โหนดย่อย(0).childnodes(1)
xmldoc.childnodes(1).childnodes(0).childnodes(1).text
xmldoc.childnodes(1).โหนดย่อย(0).childnodes(2)
xmldoc.childnodes(1).childnodes(0).childnodes(2).text
การวางตำแหน่งนั้นง่ายมากหรือไม่ มีวิธีอื่น เช่น การวางตำแหน่ง <name>
xmldoc.selectsinglenode(//ชื่อ)
NO.4--กำหนดค่าให้กับโหนด (แก้ไขค่าของโหนด)
เมื่อคุณเรียนรู้ที่จะค้นหาโหนดและใช้แอตทริบิวต์แล้ว คุณสามารถแก้ไขหรือกำหนดค่าได้
ตัวอย่างเช่น เปลี่ยนค่าของ <name> จาก caca เป็น wawa
xmldoc.selectsinglenode(//name).text=wawa
xmldoc.save(server.mappath(data.xml))
เสร็จแล้ว!
NO.5--สร้างโหนดใหม่CreatenewNode
ใช้ createelement หรือ createnode(,,)
ตัวอย่างเช่น: สร้าง <age> ใหม่ภายใต้บันทึก และใช้เวลาเพียงประโยคเดียวเท่านั้น:
xmldoc.selectsinglenode(//บันทึก).appendchild(xmldoc.createelement(<อายุ>))
กำหนดค่าให้กับ <อายุ>
xmldoc.selectsinglenode(//age).text=20
xmldoc.save(server.mappath(data.xml))
เสร็จแล้ว!
NO.6 - ลบ nodeDeleteNode
คุณต้องระบุโหนดหลักของโหนดที่คุณต้องการลบ รวมถึงคุณสมบัติของโหนดนี้
ตัวอย่างเช่น: ลบโหนด <qq>
xmldoc.selectsinglenode(//บันทึก).removechild(xmldoc.selectsinglenode(//qq))
ตัวอย่างเช่น: ลบ <record> ที่มี <name>=caca
xmldoc.selectsinglenode(//บันทึก).removechild(xmldoc.selectsinglenode(//บันทึก[ชื่อ='caca']))
xmldoc.save(server.mappath(data.xml))
เสร็จแล้ว!
ตราบใดที่คุณเชี่ยวชาญใน 6 รหัสเหล่านี้และใช้ asp เพื่อควบคุมฐานข้อมูล 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
-------------------------------------------------- -------------------------------------------------- --------------------------------------------
แม้ว่า ASP จะสามารถใช้งานไฟล์ XML ได้เพียงอย่างเดียว แต่ก็เพียงพอแล้วสำหรับนักพัฒนาโปรแกรมทั่วไป
ก่อนหน้านี้ ฉันไม่ค่อยได้ใช้ภาษา XML มากนัก ต่อมาฉันค่อยๆ ค้นพบว่า XML มีความสะดวกมากมายในการจัดเก็บข้อมูล แม้ว่าความปลอดภัยจะไม่ดี (ในความคิดของฉัน) แต่มันก็เป็นตัวเลือกที่ดีมากสำหรับการจัดเก็บข้อมูลทั่วไป
วันนี้ เนื่องจากจำเป็นต้องใช้ XML บนเว็บไซต์ ฉันจะสรุปบางส่วนที่นี่ (จะใช้ในภายหลัง):
ขั้นแรก จัดระเบียบ ASP เพื่ออ่านไฟล์ XML
รหัส default.asp
-
โหนดสลัว, i, nodecount
ตั้ง Doc = CreateObject (Microsoft.XMLDOM)
Doc.async = เท็จ
Doc.load(Server.MapPath(data.xml))
ตั้งค่ารูท = Doc.documentElement
ตั้งค่า nodeLis = root.childNodes
nodeCount = nodeLis.ความยาว
สำหรับ i=1 ถึง nodeCount
ตั้งค่าโหนด = nodeLis.nextNode()
กำหนดต้นทุน = node.attributes.getNamedItem(ต้นทุน)
-
บันทึก <%=i%>:
<ความกว้างของตาราง=เส้นขอบ 50%=1>
<tr>
<td width=43 rowspan=2><img src=<%=node.selectSingleNode(img).text%>/></td>
<td width=46>ชื่อหนังสือ</td>
<td width=48>สำนักพิมพ์</td>
<td width=42>ราคา</td>
</tr>
<tr>
<td>
<%=node.selectSingleNode(name).text%>
</td>
<td>
<%=node.selectSingleNode(ผู้เผยแพร่).ข้อความ%>
</td>
<td>
<%= ต้นทุนข้อความ%>
</td>
</tr>
</ตาราง>
-
ต่อไป
-
ถัดไปคือเนื้อหาข้อมูลของ Data.xml
<?xml version=การเข้ารหัส 1.0=UTF-8?>
<ข้อมูล>
<ราคาหนังสือ=56>
<name>ดรีมวีฟเวอร์</name>
<ผู้จัดพิมพ์>สำนักพิมพ์รถไฟจีน</ผู้จัดพิมพ์>
<img>img/dw.jpg</img>
</หนังสือ>
<ราคาหนังสือ=62>
<ชื่อ>แฟลช</ชื่อ>
<ผู้จัดพิมพ์>สำนักพิมพ์รถไฟจีน</ผู้จัดพิมพ์>
<img>img/flash.jpg</img>
</หนังสือ>
<ราคาหนังสือ=48>
<name>เฟอร์เวิร์ค</name>
<ผู้จัดพิมพ์>สำนักพิมพ์รถไฟจีน</ผู้จัดพิมพ์>
<img>img/fw.jpg</img>
</หนังสือ>
</ข้อมูล>