ການຕອບຢາກ XML DOM

ບັນດາຈັກການອານຸຮັກສາທັງໝົດມີຈັກການອານຸຮັກສາ XML ທີ່ຕັ້ງຢູ່ໃນທາງ.

ຈັກການອານຸຮັກສາອາດສາມາດປ່ຽນສາຍ XML ເປັນໂອລະອາດທີ່ສາມາດເຂົ້າເຖິງໂດຍ JavaScript.

ຕົວຢ່າງ

ຕົວຢ່າງທີ່ສະໜັບສະໜູນຈາກ CodeW3C.com ແມ່ນອອກຈາກຈັກການອານຸຮັກສາ ແລະວຽກສະຖານະ. ຕົວຢ່າງນີ້ສາມາດດຳເນີນໃນບັນດາຈັກການອານຸຮັກສາທັງໝົດຂອງຮູບພາບຄົນໃໝ່.

ນຳເອົາ ແລະສັບສວນ XML ບັນທະຍັບ
ນຳເອົາ ແລະສັບສວນ XML ສາຍພາສາ

ການສັບສວນ 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>

TIY

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>

TIY

ຄໍາເຫັນ:Internet Explorer ນຳໃຊ້ວິທີ loadXML() ເພື່ອການບັນທຶກ XML 字符串, ແລະການບັນທຶກຂອງບັນດາການອານຸຍາດອື່ນໆ ໂອເມລິກ ດອມໂອເມນ DOMParser.