XML DOM รับค่าโหนด
คุณสมบัติ nodeValue ใช้เพื่อรับค่าข้อความของโหนด
getAttribute() วิธีการส่งกลับค่าของแอตทริบิวต์
รับค่าขององค์ประกอบ
ใน DOM ทุกอย่างคือโหนด โหนดองค์ประกอบไม่มีค่าข้อความ
ค่าข้อความของโหนดองค์ประกอบถูกเก็บไว้ในโหนดย่อย โหนดนี้เรียกว่าโหนดข้อความ
ในการดึงค่าข้อความขององค์ประกอบ คุณต้องดึงค่าของโหนดข้อความขององค์ประกอบ
เมธอด getElementsByTagName
เมธอดgetElementsByTagName()จะ ส่งคืน รายการโหนดขององค์ประกอบทั้งหมดโดยมีชื่อแท็กที่ระบุในลำดับเดียวกับที่ปรากฏในเอกสารต้นทาง
สมมุติว่าโหลด " books.xml " ลงใน xmlDoc แล้ว
รหัสนี้ดึงองค์ประกอบ <title> แรก:
var x = xmlDoc.getElementsByTagName("title")[0];
คุณสมบัติ ChildNodes
คุณสมบัติchildNodesส่งคืน รายการโหนด ย่อยขององค์ประกอบ
รหัสต่อไปนี้ดึงโหนดข้อความขององค์ประกอบ <title> แรก:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
คุณสมบัติ nodeValue
คุณสมบัติnodeValueส่งกลับ ค่าข้อความ ของโหนดข้อความ
รหัสต่อไปนี้ดึงค่าข้อความของโหนดข้อความขององค์ประกอบ <title> แรก:
ตัวอย่าง
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
ผลลัพธ์ใน z: "ภาษาอิตาลีในชีวิตประจำวัน"
ตัวอย่างที่สมบูรณ์
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET",
"books.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName('title')[0];
var y =
x.childNodes[0];
document.getElementById("demo").innerHTML = y.nodeValue;
}
</script>
</body>
</html>
วนรอบองค์ประกอบ <title> ทั้งหมด:
รับคุณค่าของแอตทริบิวต์
ใน DOM คุณลักษณะคือโหนด โหนดแอตทริบิวต์มีค่าข้อความต่างจากโหนดองค์ประกอบ
วิธีรับค่าของแอตทริบิวต์คือการรับค่าข้อความ
ซึ่งสามารถทำได้โดยใช้เมธอด getAttribute() หรือใช้คุณสมบัติ nodeValue ของโหนดแอตทริบิวต์
รับค่าแอตทริบิวต์ - getAttribute()
getAttribute ()วิธีการส่งกลับค่าของแอตทริบิวต์
รหัสต่อไปนี้ดึงค่าข้อความของแอตทริบิวต์ "lang" ขององค์ประกอบ <title> แรก:
ตัวอย่าง
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
ผลลัพธ์ใน txt: "th"
วนรอบองค์ประกอบ <book> ทั้งหมดและรับแอตทริบิวต์ "หมวดหมู่":
รับค่าแอตทริบิวต์ - getAttributeNode()
getAttributeNode ()วิธีการส่งคืนโหนดแอตทริบิวต์
รหัสต่อไปนี้ดึงค่าข้อความของแอตทริบิวต์ "lang" ขององค์ประกอบ <title> แรก:
ตัวอย่าง
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
ผลลัพธ์ใน txt = "en"
วนรอบองค์ประกอบ <book> ทั้งหมดและรับแอตทริบิวต์ "หมวดหมู่":