Bài 2 Đi lại trong XML bằng XPATH (phần I) Chúng ta đã thấy cấu trúc và cú pháp của XML tương đối đơn giãn. XML cho ta một cách chuẩn để trao đổi tin tức giữa các computers.
Bài Đi lại XML XPATH (phần I) Chúng ta thấy cấu trúc cú pháp XML tương đối đơn giãn XML cho ta cách chuẩn để trao đổi tin tức computers Bước tìm hiểu cách chương trình chế biến (process) tài liệu XML Dĩ nhiên để chế biến XML chương trình ứng dụng phải có cách lại bên tài liệu để lấy values Elements hay Attributes Do người ta thiết kế ngôn ngữ XML Path language, mà ta gọi tắt XPath XPath đóng vai trị quan trọng công tác trao đổi liệu computers hay chương trình ứng dụng cho phép ta lựa chọn hay sàng lọc tin tức muốn để trao đổi hay hiển thị Nếu làm việc với sở liệu ta dùng SQL statement Select from TableXYZ WHERE để trích số records từ table, làm việc với XML, table liệu nho nhỏ, XPath cho ta expressions criteria (điều kiện) giống giống clause WHERE SQL XPath chuẩn để process XML, giống SQL chuẩn để làm việc với sở liệu Tiên phuông việc triển khai chương trình áp dụng XPath công tác công ty phần mềm lớn Microsoft, Oracle, Sun, IBM, v.v Sở dĩ ta cần có chuẩn XPath áp dụng nhiều hồn cảnh, nên cần phải có lý thuyết rõ ràng, xác Lý thuyết XPath khơ khan áp dụng kỹ thuật gia đình XML Cho nên bạn kiên nhẫn nắm vững điều để gặp chỗ người ta dùng XPath nhận diện hiểu So với võ thuật, XPath XML giống Tấn pháp cách thở Tập luyện Tấn pháp mõi chân, tập thở nhàm chán, khơng có hai thứ chiêu khơng có cơng lực, chưa đánh thua Ta học thứ thường dùng XPath thơi, bạn muốn có đầy đủ chi tiết XPath tham khão Specification http://www.w3c.org/TR/xpath XML XPath XPath cho ta cú pháp để diễn tả cách lại XML Ta coi tài liệu XML đại diện tree (cây) có nhiều nodes Mỗi Element hay Attribute node Để minh họa ý niệm nầy, bạn quan sát tài liệu đặt hàng (order) XML sau: 2002-03-26 John Costello Chair 6 Desk 1 Ta biểu diễn XML Tree đây, node Element màu nâu, node Attribute màu xanh: Chỉ định Location Path Bạn dùng XPath expression để định Location Path (lối đến vị trí) đến node hay trích (trả về) hay nhiều nodes thỏa điều kiện yêu cầu XPath expression tuyệt đối, tức lấy node gốc làm chuẩn hay tương đối, tức khởi đầu từ node vừa chọn Node gọi context node (node vai tình huống) Có hai cách viết để diễn tả XPath Location, viết nguyên viết tắt Trong hai cách ta dùng dấu slash (/) để nói đến Document Element, tức node gốc Ta lại node Tree giống giống node Windows System Directory mà ta thấy Panel bên trái Window Explorer Ta dùng ký hiệu slash /, chấm hai chấm Windows System File Folder cho cách viết tắt XPath Location để xuống nodes con, cháu, định context node, hay ngược lên nodes tổ tiên Location Path tuyệt đối Chúng ta tìm vài location paths Tree tài liệu XML đặt hàng nói Muốn chọn node Element Order (nó Root Element) cú pháp nguyên, ta dùng XPath expression sau đây: /child::Order Dịch cú pháp tắt, expression nầy trở nên: /Order Đi nhánh Tree, ta tìm node Customer cách dùng XPath expression sau: /child::Order/child::Customer Sau XPath expression viết tắt tương đương: /Order/Customer Nếu bạn muốn lấy node Attribute, bạn phải nói rõ điều nầy cách dùng từ chìa khóa (keyword) attribute cách viết nguyên hay dùng character @ cú pháp tắt Do để lấy Attribute OrderNo Element Order, ta dùng XPath expression sau: /child::Order/attribute::OrderNo Cú pháp tắt cho Attribute OrderNo là: /Order/@OrderNo Để trích nodes cháu, tức nodes nhánh xa hơn, ta dùng keyword descendant cú pháp nguyên hay double slash (//) cú pháp tắt Thí dụ, để lấy nodes Product tài liệu, bạn dùng expression location path sau: /child::Order/descendant::Product Cú pháp tắt tương đương là: /Order//Product Bạn dùng wildcards (lá Joker) để nói đến nodes mà tên chúng khơng thành vấn đề Thí dụ, dấu asterisk (*) wildcard định node tên Location path sau chọn tất nodes Element Order: /child::Order/child::* Cú pháp tắt tương đương là: /Order/* Location Path tương đối Nhiều XPath location paths tương context node, trường hợp location path diễn tả cách lấy node hay số (set of) nodes tương context node Thí dụ như, Element Item thứ order context node, location path tương đối để trích Element Quantity là: child::Quantity Trong cú pháp tắt, location path tương đối là: Quantity Tương tự vậy, để lấy Attribute ProductID Element Product, location path tương đối là: child::Product/attribute::ProductID Expression dịch cú pháp tắt là: Product/@ProductID Để ngược lên phía Tree, ta dùng keyword parent (cha) Dạng tắt tương đương keyword nầy hai dấu chấm ( ) Thí dụ context node Element OrderDate, Attribute OrderNo lấy từ Element Order cách dùng location path tương đối sau: parent::Order/attribute::OrderNo Để ý cú pháp nầy trả trị số node cha tên Order Nếu muốn lấy Attribute OrderNo từ node cha khơng cần biết tên bạn phải dùng expression sau: parent::*/attribute::OrderNo Viết theoo kiểu tắt đơn giản hơnn bạn khơơng cần phảải cung cấpp tên noode cha Bạnn nói đến đ node ch cách dùng hai dấu chấm ( ) ( sau: /@OrrderNo word self Ngoài raa, bạn nói đến chhính contexxt node bằnng cách dùngg keyw dấu chấm (.) Điều Đ nầy rấtt tiện vài trường hợp, l bạn muốn m biết c nod de node n current context Dùng điiều kiện tro ong Location Path Bạn t giới hạn n số nodes lấy cách gắn thhêm điều kiiện sàng lọcc vào locatiion path Cáái điều kiện giới hạn m hay nhiềều nodes đư ược tháp vàoo expressionn bên trongg cặp ngoặặc vng ([[]) Thí dụ, để đ lấy m Element Product cóó Attribute UnitPrice lớn l 70, bạn dùng XPathh expressionn sau đây: /child::Order/child d::Item/chilld::Product[[attribute::U UnitPrice>770] n là: Trong cúú pháp tắt, /Order//Item/Produ uct[@UnitP Price>70] ơng đối , doo Trong exxpression điều kiện bạn dùnng Xpath tươ expression điều kiệện bạn có thhể dùng node nàào thứ ứ bậc Thí dụụ sau lấấy m có Elemeent Prooduct với Atttibute ProdductID trị số 1: nodes Item /child::Order/child d::Item[chilld::Product//attribute::P ProductID=1] Dịch cú pháp tắt, ta có: /Order//Item[Produ uct/@ProduuctID=1] (cịn tiếpp) H XML Học Vovvisoft © 20000 All righhts reserved Last Updated: Webmaster ... diễn tả cách lại XML Ta coi tài liệu XML đại diện tree (cây) có nhiều nodes Mỗi Element hay Attribute node Để minh họa ý niệm nầy, bạn quan sát tài liệu đặt hàng (order) XML sau: < ?xml version="1.0"?>... 20 02- 03 -26 John Costello Chair 6 Desk... 6 Desk 1 Ta biểu diễn XML Tree đây, node Element màu nâu, node Attribute màu xanh: