ການຕອບຢາກ XML DOM
- ຫນ້າກ່ອນ ທີ່ຕັ້ງພາກສ່ວນ DOM
- ຫນ້າທ້າຍ DOM ລໍາລຽງ
ບັນດາຈັກການອານຸຮັກສາທັງໝົດມີຈັກການອານຸຮັກສາ XML ທີ່ຕັ້ງຢູ່ໃນທາງ.
ຈັກການອານຸຮັກສາອາດສາມາດປ່ຽນສາຍ XML ເປັນໂອລະອາດທີ່ສາມາດເຂົ້າເຖິງໂດຍ JavaScript.
ຕົວຢ່າງ
ຕົວຢ່າງທີ່ສະໜັບສະໜູນຈາກ CodeW3C.com ແມ່ນອອກຈາກຈັກການອານຸຮັກສາ ແລະວຽກສະຖານະ. ຕົວຢ່າງນີ້ສາມາດດຳເນີນໃນບັນດາຈັກການອານຸຮັກສາທັງໝົດຂອງຮູບພາບຄົນໃໝ່.
ການສັບສວນ XML
ບັນດາຈັກການອານຸຮັກສາທັງໝົດຂອງຮູບພາບຄົນໃໝ່ທັງໝົດມີຈັກການອານຸຮັກສາ XML ທີ່ຕັ້ງຢູ່ໃນທາງ.
ຈັກການອານຸຮັກສາອາດສາມາດອານຸຮັກສາ XML ແລະເປັນໂອລະອາດ XML DOM ທີ່ສາມາດເຂົ້າເຖິງໂດຍ JavaScript.
XML Microsoft ມີຄວາມແຕກຕ່າງຈາກຈັກການອານຸຮັກສາອື່ນ. XML Microsoft ສະໜັບສະໜູນການນຳເອົາ XML ແລະ XML ສາຍພາສາ (ຂໍ້ຄວາມ), ແຕ່ບັນດາຈັກການອານຸຮັກສາອື່ນໃຊ້ຈັກການອານຸຮັກສາອື່ນ. ແຕ່ບັນດາຈັກການອານຸຮັກສາທັງໝົດມີຫົວຫຼັກທີ່ສາມາດເບິ່ງກະຈາຍ, ເຂົ້າເຖິງ, ສະເໜີແລະຖອນພາກຂອງ XML.
ໃນວິນຍານນີ້، ພວກເຮົາຈະສອນວ່າແນວໃດທີ່ສ້າງສາຍພາສາທີ່ສາມາດດຳເນີນໃນ IE ແລະບັນດາຈັກການອານຸຮັກສາອື່ນ.
ນຳເອົາ XML ທີ່ໃຊ້ XML Microsoft
XML Microsoft ຕັ້ງຢູ່ໃນຈັກການອານຸຮັກສາ Internet Explorer 5 ແລະຫຼັງກ່ວາ.
ການຂໍ້ມູນລະບຸ:books.xml) ການເອົາໃນການກະຕຸ້ນຂອງການກະຕຸ້ນ:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
ການອະທິບາຍຄວາມຈິງ:
- ການສ້າງໂອລະອາດ XML Microsoft ວ່າຫຼັງຄືນ.
- ການຄຳຄົ້ນຄວ້າທີສອງບອກການປິດການເອົາບັນດາບັນນາທິການ, ທີ່ຈະຮັບປະກັນວ່າການເອົາບັນດາບັນນາທິການຈະບໍ່ສືບຕໍ່ການດໍາເນີນງານບັນດາບັນນາທິການຈົນກວ່າຂໍ້ມູນລະບຸໄດ້ຖືກເອົາຢ່າງເຕັມຈິງ
- ການຄຳຄົ້ນຄວ້າທີສາມບອກການເອົາຂໍ້ມູນລະບຸ "books.xml"
ການຂໍ້ມູນລະບຸ:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
ຄໍາເຫັນ:loadXML() ກົນລະບຽບຂອງການນຳເອົາສາຍພາສາ (ຂໍ້ຄວາມ), ແລະ load() ຂອບເຂດນຳເອົາບັນທະຍັບອອກ。
XML 解析器ໃນ Firefox ແລະບັນດາບັນດາບັນນາທິການອື່ນໆ
ການຂໍ້ມູນລະບຸ:books.xml) ການເອົາໃນການກະຕຸ້ນຂອງການກະຕຸ້ນ:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
ການອະທິບາຍຄວາມຈິງ:
- ການຄຳຄົ້ນຄວ້າທີໜຶ່ງການສ້າງຂໍ້ມູນລະບຸ XML ທີ່ບໍ່ມີຄວາມຈິງ
- ການຄຳຄົ້ນຄວ້າທີສອງບອກການປິດການເອົາບັນດາບັນນາທິການ, ທີ່ຈະຮັບປະກັນວ່າການເອົາບັນດາບັນນາທິການຈະບໍ່ສືບຕໍ່ການດໍາເນີນງານບັນດາບັນນາທິການຈົນກວ່າຂໍ້ມູນລະບຸໄດ້ຖືກເອົາຢ່າງເຕັມຈິງ
- ການຄຳຄົ້ນຄວ້າທີສາມບອກການເອົາຂໍ້ມູນລະບຸ "books.xml"
ການຂໍ້ມູນລະບຸ:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
ການອະທິບາຍຄວາມຈິງ:
- ການຄຳຄົ້ນຄວ້າທີໜຶ່ງການສ້າງຂໍ້ມູນລະບຸ XML ທີ່ບໍ່ມີຄວາມຈິງ
- ການຄຳຄົ້ນຄວ້າທີສອງບອກການກະຕຸ້ນຂອງການເອົາຄວາມຈິງທີ່ມີຊື່ txt
ຄໍາເຫັນ:Internet Explorer ໃຊ້ loadXML() ກົນລະບຸວ່າ, ບັນດາບັນດາບັນນາທິການອື່ນໆໃຊ້ DOMParser ເປັນເປົ້າ.
ການຄຳຄົ້ນຄວ້າ XML 文件 - ຄວາມຈິງຂອງບັນດາບັນນາທິການ
ການຂໍ້ມູນລະບຸ:books.xml) ການເອົາໃນ XML 解析器:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
Error: Access Across Domains
ສຳລັບເຫດຜົນຄວາມປອດໄພ, ບັນດາບັນດາບັນນາທິການທີ່ໃຊ້ຢູ່ໃນມື້ນີ້ບໍ່ອະນຸຍາດການເຂົ້າເຖິງບັນດາເຂດທີ່ບໍ່ມີສ່ວນນອກ.
ນີ້ໝາຍຄວາມວ່າ, ຂໍ້ມູນລະບຸ ແລະ ສະໜາມ XML ທີ່ລາວຕັ້ງໃຈຈະເອົາເຂົ້າໃນ, ຕ້ອງຢູ່ໃນເຂດດຽວ.
ຄວາມຈິງ CodeW3C.com ທີ່ກ່ຽວຂ້ອງແມ່ນຢູ່ໃນເຂດຂອງ CodeW3C.com.
ຖ້າເຈົ້າຕັ້ງໃຈຈະໃຊ້ຄວາມຈິງທີ່ຂື້ນມາດັ່ງກ່າວໃນເວັບໄຊຂອງເຈົ້າ, ເຈົ້າຕ້ອງຈັດ XML ສະໜາມທີ່ເຈົ້າໄດ້ສະໜອງ. ບໍ່ດັ່ງນັ້ນ, xmlDoc.load() ຈະສ້າງຄວາມຜິດພາດ "Access is denied".
ການຄຳຄົ້ນຄວ້າ XML 字符串 - ຄວາມຈິງຂອງບັນດາບັນນາທິການ
ການຂໍ້ມູນລະບຸ:
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
ຄໍາເຫັນ:Internet Explorer ນຳໃຊ້ວິທີ loadXML() ເພື່ອການບັນທຶກ XML 字符串, ແລະການບັນທຶກຂອງບັນດາການອານຸຍາດອື່ນໆ ໂອເມລິກ ດອມໂອເມນ DOMParser.
- ຫນ້າກ່ອນ ທີ່ຕັ້ງພາກສ່ວນ DOM
- ຫນ້າທ້າຍ DOM ລໍາລຽງ