Bài giảng XML DOM - Lương Hán Cơ
XML DOM
GV Lương Hán Cơ
Khoa CNTT – ĐH KHTN
ĐHKHTN-CNTT-Lương Hán Cơ
1
Nội dung
◼ Giới thiệu
◼ Lấy dữ liệu từ element
◼ Lấy dữ liệu từ attribute
◼ Thay đổi tài liệu XML
ĐHKHTN-CNTT-Lương Hán Cơ
2
Giới thiệu
◼ Ứng với mỗi cấu trúc tài liệu XML phải có một cách thức để
truy xuất khó phát triển ứng dụng
◼ Cần xây dựng một thư viện tổng quát sử dụng cho mọi tài liệu.
◼ DOM (Document Object Model) được sử dụng để thao tác lên
tất cả các tài liệu XML.
◼ DOM có nhiều phiên bản: DOM Level 1, DOM Level 2, DOM
Level 3 (draft).
ĐHKHTN-CNTT-Lương Hán Cơ
3
Ví dụ
<?xml version="1.0"?>
<order number="312597">
<date>2000/1/1</date>
<customer id="216A">Company A</customer>
<item>
<part-number warehouse="Warehouse 11">
E16-25A</part-number
<description>Production-Class
Widget</description>
<quantity>16</quantity>
</item>
</order>
ĐHKHTN-CNTT-Lương Hán Cơ
4
Giới thiệu
◼ XML DOM đóng vai trò như lớp giao tiếp ở giữa của
chương trình ứng dụng và XML parser.
ĐHKHTN-CNTT-Lương Hán Cơ
5
Tạo đối tượng DOM
◼ Java script:
var oDOM;
oDOM = new ActiveXObject("MSXML.DOMDocument");
oDOM.async = false;
oDOM.load("domnode.xml");
ĐHKHTN-CNTT-Lương Hán Cơ
6
Sử dụng DOM để lấy dữ liệu
◼ Toàn bộ tài liệu XML được chuyển đổi sang mô hình đối
tượng.
◼ Element được chuyển thành node
◼ Element Content tương ứng một node
◼ Mỗi attribute tương ứng một node
◼ Tùy theo từng loại node sẽ có cách lấy dữ liệu tương ứng.
◼ Sau khi mở tài liệu XML, toàn bộ tài liệu được thành một
node. Để truy xuất đến root Node có thể dùng thuộc tính
documentElement hay là firstChild.
ĐHKHTN-CNTT-Lương Hán Cơ
7
Sử dụng DOM để lấy dữ liệu
◼ Mỗi node đều có 3 thuộc tính: nodeType, nodeName, và nodeValue.
◼ Sử dụng thuộc tính nodeType để kiểm tra loại của node để xác định giá
trị của 2 thuộc tính còn lại.
nodeType property constant
Giá trị
nodeName
Tag name
Name of attribute Value of attribute
#text
nodeValue
ELEMENT_NODE
NULL
1
2
3
ATTRIBUTE_NODE
TEXT_NODE
Content of the text
node
NULL
DOCUMENT_NODE
9
#document
ĐHKHTN-CNTT-Lương Hán Cơ
8
Di chuyển giữa các node
◼ Sử dụng các thuộc tính: parentNode,
firstChild, lastChild, previousSibling,
và nextSibling để truy xuất Node xác
định.
◼ childNodes trả về NodeList (danh
sách các Node).
◼ Trường hợp Node hiện tại không có
node con thì firstChild, lastChild trả
về giá trị null. Còn childNodes sẽ trả
về NodeList rỗng.
◼ Chỉ áp dụng đối với element, và
element content.
ĐHKHTN-CNTT-Lương Hán Cơ
9
Lấy dữ liệu từ attributes
◼ Sử dụng thuộc tính attributes
◼ Thuộc tính attributes chỉ có hiệu lực đối với node là loại
element. Các trường hợp khác sẽ mang giá trị null.
◼ Thuộc tính attributes sẽ trả về đối tượng NamedNodeMap.
◼ Mỗi phần tử trong attributes là một đối tượng node với
nodeType = ATTRIBUTE_NODE.
ĐHKHTN-CNTT-Lương Hán Cơ
10
NodeList vs NamedNodeMap
NodeList
NamedNodeMap
attributes
Nguồn:
childNodes
getElementsByTagName(“..”)
selectNodes(“…”)
Sử dụng:
Thuộc tính:
đối với những node có tính thứ tự
length
không quan tâm đến thứ tự
length
Phương thức: item(…) chỉ số từ 0 đến length – 1
item(…) chỉ số từ 0 đến length – 1
getNamedItem(“…”)
ĐHKHTN-CNTT-Lương Hán Cơ
11
Thay đổi tài liệu XML
◼ Tạo node
– createNode: dùng để tạo mới tất cả các loại node
– createElement: = createNode với loại ELEMENT_NODE
– createTextNode: = createNode với loại TEXT_NODE
◼ Gắn node mới vào tài liệu XML
– nodeCha.appendChild: thêm vào phần tử cuối cùng của danh sách childNodes
của node cha.
– nodeCha.insertBefore : thêm node mới vào trước phần tử nào đó trong
childNodes của node cha.
◼ Tạo attribute
– createAttribute: = createNode với loại ATTRIBUTE_NODE
◼ Thêm attribute vào tài liệu XML
– node. setAttributeNode
– node.attributes.setNamedItem
◼ Xóa node
– node.removeChild
ĐHKHTN-CNTT-Lương Hán Cơ
12
Bạn đang xem tài liệu "Bài giảng XML DOM - Lương Hán Cơ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_xml_dom_luong_han_co.ppt

