Hướng dẫn XML

TRANG CHỦ XML Giới thiệu XML Cách sử dụng XML Cây XML Cú pháp XML Phần tử XML Thuộc tính XML Không gian tên XML Hiển thị XML HttpRequest XML Trình phân tích cú pháp XML DOM XML XPath XML XSLT XML XQuery XML XML XLink Trình xác thực XML DTD XML Lược đồ XML Máy chủ XML Ví dụ về XML Câu đố XML Chứng chỉ XML

XML AJAX

Giới thiệu AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

DOM XML

Giới thiệu DOM Nút DOM Truy cập DOM Thông tin nút DOM Danh sách nút DOM DOM Traversing Điều hướng DOM DOM Nhận giá trị Nút thay đổi DOM DOM Xóa các nút Nút thay thế DOM DOM Tạo nút DOM Thêm nút Nút nhân bản DOM Ví dụ về DOM

Hướng dẫn XPath

Giới thiệu XPath Nút XPath Cú pháp XPath Trục XPath Toán tử XPath Ví dụ về XPath

Hướng dẫn XSLT

Giới thiệu XSLT Ngôn ngữ XSL Chuyển đổi XSLT XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sắp xếp> XSLT <if> XSLT <chọn> Áp dụng XSLT XSLT trên máy khách XSLT trên Máy chủ XSLT Chỉnh sửa XML Ví dụ về XSLT

Hướng dẫn XQuery

Giới thiệu XQuery Ví dụ về XQuery XQuery FLWOR HTML XQuery Điều khoản XQuery Cú pháp XQuery XQuery Thêm Chọn XQuery Hàm XQuery

DTD XML

Giới thiệu DTD Khối xây dựng DTD Phần tử DTD Các thuộc tính DTD Phần tử DTD so với Attr Thực thể DTD Ví dụ về DTD

Lược đồ XSD

Giới thiệu XSD XSD Cách thực hiện XSD <schema> Phần tử XSD Thuộc tính XSD Hạn chế XSD

XSD Complex

Phần tử XSD XSD trống Chỉ các phần tử XSD Chỉ văn bản XSD XSD hỗn hợp Chỉ báo XSD XSD <nhiều> XSD <anyAttribute> Thay thế XSD Ví dụ về XSD

Dữ liệu XSD

Chuỗi XSD Ngày XSD XSD Numeric XSD Misc Tham chiếu XSD

Dịch vụ web

Dịch vụ XML WSDL XML SOAP XML RDF XML RSS XML

Người giới thiệu

Các loại nút DOM Nút DOM DOM NodeList DOM NamedNodeMap Tài liệu DOM Phần tử DOM Thuộc tính DOM Văn bản DOM DOM CDATA Bình luận DOM DOM XMLHttpRequest Trình phân tích cú pháp DOM Phần tử XSLT Hàm XSLT / XPath

DOM XML - Nút điều hướng


Các nút có thể được điều hướng bằng cách sử dụng các mối quan hệ của nút.

×

Header


Điều hướng các nút DOM

Truy cập các nút trong cây nút thông qua mối quan hệ giữa các nút, thường được gọi là "nút điều hướng".

Trong XML DOM, các mối quan hệ nút được định nghĩa là thuộc tính của các nút:

  • parentNode
  • trẻ em
  • FirstChild
  • con cuối cùng
  • nextSibling
  • trước đây Anh chị em

Hình ảnh sau minh họa một phần của cây nút và mối quan hệ giữa các nút trong books.xml :

Cây nút


DOM - Nút mẹ

Tất cả các nút đều có chính xác một nút cha. Đoạn mã sau điều hướng đến nút cha của <book>:

Thí dụ

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("book")[0];
    document.getElementById("demo").innerHTML = x.parentNode.nodeName;
}

Ví dụ được giải thích:

  1. Tải " books.xml " vào xmlDoc
  2. Nhận phần tử <book> đầu tiên
  3. Xuất ra tên nút của nút cha của "x"


Tránh các nút văn bản trống

Firefox và một số trình duyệt khác sẽ coi khoảng trắng trống hoặc dòng mới là nút văn bản, Internet Explorer thì không.

Điều này gây ra sự cố khi sử dụng các thuộc tính: firstChild, lastChild, nextSibling, beforeSibling.

Để tránh điều hướng đến các nút văn bản trống (dấu cách và ký tự dòng mới giữa các nút phần tử), chúng tôi sử dụng một hàm kiểm tra loại nút:

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

Hàm trên cho phép bạn sử dụng get_nextSibling ( nút ) thay vì nút thuộc tính .nextSibling.

Mã giải thích:

Các nút phần tử là loại 1. Nếu nút anh chị em không phải là một nút phần tử, nó sẽ di chuyển đến các nút tiếp theo cho đến khi tìm thấy một nút phần tử. Bằng cách này, kết quả sẽ giống nhau trên cả Internet Explorer và Firefox.


Nhận phần tử con đầu tiên

Đoạn mã sau hiển thị nút phần tử đầu tiên của <book> đầu tiên:

Thí dụ

<!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 = get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
    document.getElementById("demo").innerHTML = x.nodeName;
}

//check if the first node is an element node
function get_firstChild(n) {
    var y = n.firstChild;
    while (y.nodeType != 1) {
        y = y.nextSibling;
    }
    return y;
}
</script>

</body>
</html>

Đầu ra:

title

Ví dụ được giải thích:

  1. Tải " books.xml " vào xmlDoc
  2. Sử dụng hàm get_firstChild trên nút phần tử <book> đầu tiên để lấy nút con đầu tiên là nút phần tử
  3. Xuất ra tên nút của nút con đầu tiên là nút phần tử

Các ví dụ khác


Ví dụ này sử dụng phương thức lastChild () và một hàm tùy chỉnh để lấy nút con cuối cùng của một nút


Ví dụ này sử dụng phương thức nextSibling () và một hàm tùy chỉnh để lấy nút anh em tiếp theo của một nút


Ví dụ này sử dụng phương thức beforeSibling () và một hàm tùy chỉnh để lấy nút anh chị em trước của một nút