ການການຄົ້ນຫາຂອງ XML DOM

ສາມາດການຄົ້ນຫາພະຍານດ້ວຍການຄົ້ນຫາຂອງພະຍານລະຫວ່າງກັນ.

ກໍານົດຄວາມ

ຕົວຢ່າງດ້ານຫຼັງພາຍໃນເອກະສານ XML. books.xml.

ຫົວວິທີ loadXMLDoc()ທີ່ຢູ່ໃນ JavaScript ພາຍນອກເພື່ອອ້າງເອົາເອກະສານ XML.

ການຮັບພະຍານພາຍໃນຂອງພະຍານ
本例使用 parentNode 属性来获取节点的父节点。
ການຄົ້ນຫນັງຫນັງທໍາອິດຂອງຫນັງ
ກໍານົດຄັ້ງນີ້ໃຊ້ວິທີ firstChild() ແລະການປະກອບພັນທີ່ເອງເພື່ອການຄົ້ນຫນັງຫນັງທໍາອິດຂອງຫນັງ.

ການຄົ້ນຫນັງ DOM ຫນັງ

ການຂຫາຫນັງຂອງຫນັງທີ່ພົບລະບຸຫນັງທາງພາຍໃນຫນັງທີ່ຈະຖືກເອີ້ນວ່າການຄົ້ນຫນັງຫນັງ ("navigating nodes").

ໃນ XML DOM ການພັນທະນາການຫນັງທີ່ພົບກັບຫນັງຖືກກໍານົດວ່າຂໍ້ມູນຂອງຫນັງ:

  • parentNode
  • childNodes
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

ພາບທີ່ສະແດງ: books.xml ສະຖານະຫນັງທີ່ຈະກວດຄືນຫນັງທີ່ຖືກສະແດງລະບຸຫນັງສະຖານະຢ່າງທີ່ພົບລະບຸຫນັງສະຖານະຢ່າງ.

ລະເບີດນັບໂຕ

DOM - ພາຍໃນຫນັງ

ຫນັງທັງໝົດຈະມີພຽງຫນັງພາຍໃນໜຶ່ງ. ລະບົບທີ່ຖືກສະແດງລະບຸຫນັງພາຍໃນ <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
document.write(x.parentNode.nodeName);

ກໍານົດຄວາມອະທິບາຍ

  • ພາຍໃຕ້ການໃຊ້ loadXMLDoc() ອີກ "books.xml" ຊອກອອກໄປໃນ xmlDoc
  • ການຄົ້ນຫນັງ <book> ຫນັງສະຖານະ
  • ການສະແດງຊື່ຫນັງພາຍໃນຫນັງຂອງ "x"

TIY

ຫລີກລ່ຽງຫນັງສະຖານະຈຳທີ່ບໍ່ມີຫນັງ

Firefox ແລະບັນດາບັນດາບາບິບອື່ນໆຈະກວດຄືນຫນັງສະຖານະຈຳທີ່ບໍ່ມີຫນັງແລະອອກສຽງສັນຍານຄືກັບຫນັງສະຖານະຢ່າງ ແຕ່ IE ຈະບໍ່ເຮັດແນວນັ້ນ.

ນີ້ຈະເປັນບັນຫາພາຍໃນການໃຊ້ຂໍ້ມູນທີ່ໃຫ້ກັບ: firstChild、lastChild、nextSibling、previousSibling。

ເພື່ອຫລີກລ່ຽງການກວດຄືນຫນັງສະຖານະຈຳນວນບາງຫນັງສະຖານະຈຳທີ່ບໍ່ມີຂໍ້ມູນ (ພາຍໃນຫນັງສະຖານະຢ່າງທີ່ບໍ່ມີຫນັງແລະອອກສຽງສັນຍານ) ພວກເຮົາໃຊ້ການກວດຄືນຫນັງຄັນດຽວເພື່ອກວດຄືນຫນັງ.

function get_nextSibling(n)
{
y=n.nextSibling;
while (y.nodeType!=1)
  {
  y=y.nextSibling;
  }
return y;
}

ມີການປະກອບພັນກັບການນຳໃຊ້ get_nextSibling(node) ແທນກັບ ຂໍ້ມູນທີ່ໄດ້ອະນຸຍາດ node.nextSibling.

ການອະທິບາຍລະບົບ:

ຫນັງສະຖານະຢ່າງແມ່ນ 1。ຖ້າຫນັງສະຖານະຢ່າງໃນລະດັບດຽວບໍ່ແມ່ນຫນັງສະຖານະຢ່າງແລ້ວຈະຍ້າຍໄປຫນັງໃນເປັນຈຸດທ້າຍຫນັງສະຖານະຢ່າງຫນັງຢ່າງນັ້ນຈະມີຫນັງສະຖານະຢ່າງຢ່າງນັ້ນໄດ້ພົບສຳລັບ IE ແລະ Firefox ທັງສອງບັນຫາຈະມີຜົນກັນ.

ການຄົ້ນຫນັງຫນັງສະຖານະຢ່າງທໍາອິດ

ລະບັບທີ່ຖືກສະແດງລະບຸຫນັງ <book> ຫນັງສະຖານະຢ່າງທໍາອິດ:

<html>
<head>
<script type="text/javascript" src="loadxmldoc.js">
</script>
<script type="text/javascript">
//ກວດຄືນຫນັງທໍາອິດແມ່ນຫນັງສະຖານະຢ່າງ
function get_firstChild(n)
{
y=n.firstChild;
while (y.nodeType!=1)
  {
  y=y.nextSibling;
  }
return y;
}
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=loadXMLDoc("books.xml");
x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
document.write(x.nodeName);
</script>
</body>
</html>

ການສະແດງ

title

ກໍານົດຄວາມອະທິບາຍ

  • ພາຍໃຕ້ການໃຊ້ loadXMLDoc() ອີກ "books.xml" ບໍລິຫານ xmlDoc
  • ການນໍາໃຊ້ get_firstChild ວິທະຍາດຕະຫລອດໃນ <book> ທີ່ທຳອິດ ເພື່ອການເອົາຫນັງບົດຄວາມທີ່ເປັນຫນັງບົດຄວາມ
  • ການສະແດງຊື່ຫນັງບົດຄວາມທີ່ເປັນຫນັງບົດຄວາມຂອງບັນດາຫນັງບົດຄວາມ

TIY

ກໍານົດຄວາມ

ກໍານົດຄວາມນັບບັນດາບົດຄວາມທີ່ຍັງບໍ່ມີຫນັງນີ້ໃນພາບດັ່ງກ່າວ

  • firstChild: TIY
  • lastChild: TIY
  • nextSibling: TIY
  • previousSibling: TIY