Thêm nút XML DOM

Mô hình

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

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

thêm một phần tử sau phần tử con cuối cùng
ví dụ này sử dụng phương thức appendChild() để thêm một phần tử con vào một phần tử đã có.
thêm một phần tử trước một phần tử con đã chỉ định
ví dụ này sử dụng phương thức insertBefore() để chèn một phần tử trước một phần tử con đã chỉ định.
thêm một thuộc tính mới
ví dụ này sử dụng phương thức setAttribute() để thêm một thuộc tính mới.
thêm dữ liệu vào phần tử văn bản
ví dụ này sử dụng phương thức insertData() để chèn dữ liệu vào một phần tử văn bản đã có.

thêm phần tử - appendChild()

phương thức appendChild() thêm phần tử con vào phần tử đã có.

phần tử mới sẽ được thêm (thêm vào) sau bất kỳ phần tử con đã có nào.

Ghi chú:nếu vị trí của phần tử rất quan trọng, hãy sử dụng phương thức insertBefore().

mã nguồn sau đây tạo một phần tử (thuộc tính <edition>) và thêm nó vào phần tử con cuối cùng của phần tử <book> đầu tiên:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Mô tả ví dụ:

  1. Bằng cách sử dụng loadXMLDoc() Đặt "books.xml" vào xmlDoc
  2. tạo một phần tử mới <edition>
  3. thêm phần tử này vào phần tử <book> đầu tiên

TIY

vòng lặp và thêm một phần tử vào tất cả các phần tử <book>:TIY

chèn phần tử - insertBefore()

phương thức insertBefore() được sử dụng để chèn phần tử trước phần tử con đã chỉ định.

phương pháp này rất hữu ích khi vị trí của phần tử được thêm vào rất quan trọng.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

Mô tả ví dụ:

  1. Bằng cách sử dụng loadXMLDoc() Đặt "books.xml" vào xmlDoc
  2. tạo một phần tử元素 mới <book>
  3. chèn phần tử này trước phần tử元素 <book> cuối cùng

TIY

nếu tham số thứ hai của phương thức insertBefore() là null, phần tử mới sẽ được thêm sau phần tử con cuối cùng đã có.

x.insertBefore(newNode,null)x.appendChild(newNode) đều có thể thêm một phần tử con mới vào x.

thêm thuộc tính mới

phương thức addAtribute() này không tồn tại.

Nếu thuộc tính không tồn tại, phương thức setAttribute() có thể tạo một thuộc tính mới:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

Mô tả ví dụ:

  1. Bằng cách sử dụng loadXMLDoc() Đặt "books.xml" vào xmlDoc
  2. Đặt giá trị thuộc tính "edition" của phần tử đầu tiên <book> là (tạo) "first"

TIY

Ghi chú:Nếu thuộc tính đã tồn tại, phương thức setAttribute() sẽ ghi đè giá trị hiện có.

Thêm văn bản vào nút văn bản - insertData()

Phương thức insertData() sẽ chèn dữ liệu vào nút văn bản hiện có.

Phương thức insertData() có hai tham số:

  • offset - vị trí bắt đầu chèn ký tự (bắt đầu từ 0)
  • string - chuỗi cần chèn

Mã đoạn sau sẽ thêm "Easy" vào văn bản của phần tử đầu tiên <title> trong XML đã tải:

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

TIY