Thay thế nút XML DOM

Phương thức replaceChild() thay thế nút được chỉ định.

Thuộc tính nodeValue thay thế văn bản của nút văn bản.

Mô hình

Ví dụ sau đây sử dụng tệp XML books.xml.

Hàm loadXMLDoc()nằm ở JavaScript bên ngoài, được sử dụng để tải tệp XML.

Thay thế element
Ví dụ này sử dụng replaceChild() để thay thế element đầu tiên <book>.
Thay thế dữ liệu của nút văn bản
Ví dụ này sử dụng thuộc tính nodeValue để thay thế dữ liệu của nút văn bản.

Thay thế element

Phương thức replaceChild() được sử dụng để thay thế nút.

Mã đoạn sau đây thay thế element đầu tiên <book>:

xmlDoc=loadXMLDoc("books.xml");
x = xmlDoc.documentElement;
//Tạo một element book, một element title và một nút văn bản
newNode = xmlDoc.createElement("book");
newTitle = xmlDoc.createElement("title");
newText = xmlDoc.createTextNode("Hello World");
//Thêm nút văn bản vào nút title
newTitle.appendChild(newText);
//Thêm nút title vào nút book
newNode.appendChild(newTitle);
y = xmlDoc.getElementsByTagName("book")[0];
//Thay thế nút đầu tiên book bằng nút mới này
x.replaceChild(newNode, y);

Ví dụ minh họa:

  • Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Đang tải vào xmlDoc"
  • Tạo một nút element mới <book>
  • Tạo một nút element mới <title>
  • Tạo một nút văn bản mới với văn bản "Hello World"
  • Chèn nút văn bản mới này vào nút元素 mới <title>
  • Chèn nút元素 mới <book> này vào nút元素 mới <book>
  • Thay thế nút元素 <book> đầu tiên bằng một nút元素 <book> mới

TIY

Thay thế dữ liệu của nút văn bản

Phương thức replaceData() được sử dụng để thay thế dữ liệu của nút văn bản.

Phương thức replaceData() có ba tham số:

  • offset - vị trí bắt đầu thay thế ký tự. Giá trị offset bắt đầu từ 0.
  • length - số ký tự cần thay thế
  • string - chuỗi cần chèn
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"hello");

Ví dụ minh họa:

  • Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Đang tải vào xmlDoc"
  • Lấy văn bản của node văn bản của phần tử <title> đầu tiên
  • Sử dụng phương thức replaceData để thay thế 8 ký tự đầu tiên của node văn bản bằng "hello"

TIY

Sử dụng thuộc tính nodeValue

Việc thay thế dữ liệu trong node văn bản bằng thuộc tính nodeValue sẽ dễ dàng hơn.

Mã đoạn sau sẽ thay thế giá trị của node văn bản của phần tử <title> đầu tiên bằng "Easy Italian":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Hello World";

Ví dụ minh họa:

  • Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Đang tải vào xmlDoc"
  • Lấy văn bản của node văn bản của phần tử <title> đầu tiên
  • Sử dụng thuộc tính nodeValue để thay đổi văn bản của node văn bản này

TIY

Bạn có thể trong Thay đổi node Trong phần này, bạn có thể đọc thêm về việc thay đổi giá trị node.