Tải bản đầy đủ (.docx) (42 trang)

BÁO CÁO ĐỒ ÁN TÌM HIỂU XML TUTORIAL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (517.64 KB, 42 trang )


ĐẠI HỌC QUỐC GIA TP.HCM
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN



BÁO CÁO ĐỒ ÁN
ĐỀ TÀI: TÌM HIỂU XML TUTORIAL
Năm học 2015 - 2016

Môn học: Lập trình ứng dụng mạng
Lớp: NT109.G22
GVHD: Trần Hồng Nghi
Thực hiện:
Nguyễn Thành Đăng Khoa

13520403

Nguyễn Thanh Tâm

12520909

Đặng Thái Hoà

12520596


Mục Lục
.....................................................................................................................................................................................43



1. XML Home
- XML là viết tắt của cụm từ EXtensible Markup Language.
- XML được thiết kế để lưu trữ và truyền dữ liệu.
- XML được thiết kể để cả con người và máy tính đều có thể đọc được.

Ví dụ về đoạn mã xml đơn giản:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

2.

Giới thiệu về XML

a. XML là gì?
- XML là ngôn ngữ đánh dấu mở rộng (giống như HTML) do W3C đề nghị với mục đích tạo ra

các ngôn ngữ đánh dấu khác.
- Đây là một tập con đơn giản có thể mô tả nhiều loại dữ liệu khác nhau.
- Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc
biệt là các hệ thống được kết nối với Internet.
Ví dụ khi ta xây dựng một ứng dụng bằng C# và một ứng dụng bằng PHP thì hai ngôn ngữ này
không thể hiểu nhau, vì vậy ta sẽ sử dụng XML để trao đổi dữ liệu.
b. Sự khác nhau giữa XML và HTML?
- XML được thiết kế để mang dữ liệu còn HTML được thiết kế để hiển thị dữ liệu.
- XML không sử dụng các tag được định nghĩa trước như HTML.


Ví dụ:
-

HTML làm việc với các tag được xác định trước như

,

, <table> .v.v.. Còn các tag trong XML
là do người lập trình định nghĩa và mỗi tag là một mô tả dữ liệu mà người lập trình muốn truyền đạt.

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
Trang 4


<body>Don't forget me this weekend!</body>
</note>
3.

Sử dụng XML như thế nào?
a.

XML được sử dụng như thế nào?

XML được sử dụng trong nhiều khía cạnh của phát triển web.
XML thường được sử dụng để tách biệt dữ liệu và việc trình bày dữ liệu:
XML không chứa thông tin về việc làm thế nào để hiển thị dữ liệu, các dữ liệu trong XML có thể được
-

-


trình bày theo nhiều cách khác nhau. Do đó XML có sự tách biệt hoàn toàn giữa dữ liệu và sự trình bày
dữ liệu đó.
b.

XML tách dữ liệu từ HTML:

Khi hiển thị dữ liệu dưới dạng HTML, chúng ta không cần phải chỉnh sửa các tập tin HTML khi
dữ liệu thay đổi. Với XML, dữ liệu có thể được lưu trữ trong các tập tin XML riêng biệt.
Với một vài dòng mã JavaScript, chúng ta có thể đọc một tập tin XML và cập nhật nội dung dữ
liệu của bất kỳ trang HTML nào.
4.

XML Tree
XML được tạo bởi các tag (XML element) có thể lồng lên nhau, tag ngoài ta gọi là tag cha và các

tag bên trong gọi là tag con và chúng có thể được tổ chức theo một cấu trúc cây thư mục.
Ví dụ: Ta có sơ đồ cây lưu trữ thông tin về sách trong cửa hàng

Với sơ đồ trên ta có XML như sau:
<?xml version="1.0" encoding="UTF-8"?>
Trang 5


<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
30.00</price>
</book>

</bookstore>

5. XML Syntax Rules
Các luật cú pháp của XML thì rất đơn giản và logic, các luật cũng dễ học và dễ sử dụng.

a. Tất cả các element đều phải có tag đóng.
Trong HTML, một vài element không cần phải có tag đóng.

Văn bản.


Tuy nhiên, trong XML thì lại không được như vậy, tất cả element đều phải có tag đóng.

Văn bản.





b. Các tag có phân biệt chữ hoa chữ thường
Trong XML thì các tag có phân biệt giữa chữ hoa và chữ thường, tag đóng và tag mở phải giống nhau y
hệt.
<Message>Đây là sai</message>
<message>Đây là đúng</message>

c. Các tag lồng nhau thì phải đúng thứ tự
Trong HTML, các tag có thể lồng nhau không theo thứ tự.
<b><i> Đoạn văn được in đậm và in nghiêng</b></i>
Nhưng trong XML thì tuyệt đối phải đúng thứ tự.
<b><i> Đoạn văn được in đậm và in nghiêng </i></b>

d. Phải có 1 element gốc
Trang 6



XML phải có 1 element mà là cha của tất cả các element khác. Element này gọi là root element.
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

e. Các giá trị của thuộc tính phải nằm trong dấu nháy kép.
Element XML có thể có các thuộc tính theo cặp như name/value như HTML.
Trong XML thì các giá trị phải được nằm trong nháy kép.
Sai:
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
Đúng:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

f. Các tham chiếu thực thể
Một vài ký tự có ý nghĩa đặc biệt trong XML. Ví dụ nếu ta đặt 1 ký tự như “<” bên trong element
XML. Nó sẽ gây ra lỗi vì các parse sẽ cho rằng nó là bắt đầu 1 element mới.
Ví dụ:
<message>Dòng này sẽ bị lỗi < 1000</message>
Để tránh bị lỗi ta thay thế “<” bằng 1 thực thể tham chiếu.
<message>Dòng này không bị lỗi < 1000</message>
Dưới đây là bảng thực thể tham chiếu trong XML:


Trang 7


g. Ghi chú trong XML
Cũng giống HTML đó là:
<!-- Viết ghi chú ở đây -->
Tuy nhiên ở phần ghi chú không cho phép có 2 dấu gạch giữa liên tiếp.
<!-- Không cho phép 2 dấu -- liên tiếp trong ghi chú -->

h. Khoảng trắng được giữ nguyên trong XML
Trong HTML thì các khoảng trắng dư thừa sẽ bị cắt đi hết chỉ giữ lại 1 cái khoảng trắng.
Còn trong XML thì nó không bị cắt.

i. XML lưu trữ dòng mới như là LF (Line Feed)
Các ứng dụng windows lưu trữ 1 dòng mới: ký tự bắt đầu dòng và ký tự xuống dòng (CR + LF)
Hệ điều hành Unix và Mac OSX sử dụng LF.
Hệ điều hành MAC bản cũ sử dụng CR.
XML lưu trữ 1 dòng mới như là LF.
6.

XML Elements

Một tài liệu XML chứa nhiều element khác nhau.

a. XML Element là gì?
-

Một XML element bao gồm mọi thứ từ tag mở đến tag đóng
Một element có thể chứa:
+ Các element khác

+ Text
+ Attriubtes (Thuộc tính)
+ Hỗn hợp các phần trên lại
<bookstore>
<book category="children">
<title>Harry Potter</title>
<author>J K. Rowling</author>

Trang 8


<year>2005</year>
29.99</price>
</book>
<book category="web">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
39.95</price>
</book>
</bookstore>

Trong ví dụ trên:
<title>, <author>, <year> và là dạng element chứa text vì có chứa nội dung văn bản.
<bookstore> và <book> là dạng element chứa element khác.
<book> là dạng element chứa thuộc tính (category="children").
b. Empty Element
- Gọi là element rỗng, được sử dụng cho những element mà không có nội dung.
- Thay vì viết 1 element không có nội dung như thế này:


<element></element>
-

Ta có thể chuyển thành:
<element />

c.

Cách đặt tên Element

Đặt tên Element XML phải theo các luật sau:
+
+
+
+

Tên có thể chứa các chữ cái, số, và các ký tự khác.
Tên không thể bắt đầu bằng số và dấu chấm.
Tên không thể chứa từ “XML”(hay là xml, Xml,…)
Tên không thể chứa khoảng trắng.

d.
+
+
+
+
+
e.

Cách đặt tên tốt nhất

Tên phải có tính mô tả : <first_name>, <last_name>
Tên phải ngắn và đơn giản: như <book_title> chứ không nên dùng tên <The_title_of_book>
Tránh dùng dấu - (gạch giữa) trong tên: first-name
Tránh dùng dấu . (chấm) trong tên: first.name
Tránh dùng dấu : (hai chấm) trong tên vì nó hay dùng để gọi namespace

Naming style

Một số lời khuyên để cho 1 tài liệu XML trở nên chuyên nghiệp và dễ đọc:
Trang 9


+
+
+
+
+

Viết chữ thường hết:<firstname>
Viết chữ in hoa hết:<FIRSTNAME>
Gạch dưới phân cách cho từng từ:<first_name>
Viết hoa ký tự đầu từ:<FirstName>
Viết hoa ký tự đầu của từ thứ hai:<firstName>

Một tài liệu XML thường đại diện cho 1 CSDL tương ứng, thế nên tốt nhất là lấy tên của các cột đặt tên
cho element.
f.

XML Element có thể mở rộng


Các element có thể mở rộng để mang nhiều thông tin hơn.
Ví dụ mở rộng thêm cho đoạn sau:
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>

Sau khi thêm:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Trang 10


7. XML – Thuộc tính
Các phần tử XML có thể có các thuộc tính, giống như HTML.
Các thuộc tính được thiết kế để chứa các dữ liệu liên quan đến một phần tử cụ thể.
a.

Cú pháp

-

Một thuộc tính XML có cú pháp như sau:

<tên_phần_tử thuộc_tính_1 thuộc_tính_2>
....nội dung..
< / tên_phần_tử>

-

Ở đây, thuộc_tính_1 thuộc_tính_2 có mẫu như sau:
name = "value"

b.

Các giá trị thuộc tính XML phải được trích dẫn

Ví dụ:
Đối với giới tính của một người, các phần tử có thể được viết thế này:

Hoặc


-

Nếu các giá trị của chính thuộc tính có chứa dấu ngoặc kép, ta có thể dùng dấu nháy đơn để trích
dẫn Giá trị của thuộc tính:

<gangster name='George "Shotgun" Ziegler'>
Hoặc có thể dùng dấu nháy kép và dấu chấm phẩy:

<gangster name="George &quot;Shotgun&quot; Ziegler">
c.


Các phần tử XML so với thuộc tính
Hãy xem ví dụ sau:


Trang 11


<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>


<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
-

Trong ví dụ đầu tiên giới tính (gender) là một thuộc tính. Cuối cùng, giới tính là một phần

-

tử. Cả hai ví dụ cung cấp các thông tin tương tự.
Không có không có quy tắc về khi sử dụng thuộc tính hoặc khi sử dụng các yếu tố trong XML.

d.

Tránh những thuộc tính XML?
Một số điều cần xem xét khi sử dụng những thuộc tính này là:
• Các thuộc tính không thể chứa nhiều giá trị (các phần tử thì có thể)

• Các thuộc tính có thể không chứa các cấu trúc cây (các phần tử thì có thể)
• Các thuộc tính không dễ dàng mở rộng (đối với những thay đổi sau này)
Đừng kết thúc như thế này:
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

e. Những thuộc tính XML cho Siêu dữ liệu
- Đôi khi ID tham chiếu được gán cho các phần tử.
- Những ID tham chiếu này có thể dùng để định danh cho các phần tử XML theo cách giống với ID

thuộc tính trong HTML.
Ví dụ:
<messages>
Trang 12


<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>

</messages>
-

Các id thuộc tính trên để định danh cho các note khác nhau.
Siêu dữ liệu phải được lưu trữ như là các thuộc tính, và các dữ liệu của chính nó nên được lưu
trữ như là các phần tử.

8. XML Namespaces
XML Namespaces (không gian tên) cung cấp một phương thức để tránh các xung đột tên phần tử.
a. Xung đột tên
- Trong XML, tên phần tử được định danh bởi các nhà phát triển.
- Điều này thường dẫn đến xung đột khi cố gắng kết hợp các tài liệu XML từ các ứng dụng XML

khác nhau.
Ví dụ:
XML này mang thông tin bảng HTML:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML này mang thông tin về một bàn, 1 phần của nội thất:

<table>
<name>African Coffee Table</name>
<width>80</width>
Trang 13



<length>120</length>
</table>
-

- Nếu những mảnh XML được thêm vào với nhau, sẽ có cuộc xung đột tên.
Cả hai đều chứa một phần tử <table> , nhưng những phần tử này có nội dung và ý nghĩa khác nhau.
- Người dùng hoặc một ứng dụng XML sẽ không biết để xử lí những khác biệt này.

b. Giải quyết các xung đột Tên sử dụng Prefix (tiền tố)
- Xung đột tên trong XML có thể dễ dàng tránh được bằng cách sử dụng một tên tiền tố.
Ví dụ:
XML này mang thông tin về một bảng HTML và bàn – 1 phần của nội thất:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
Trong ví dụ trên, sẽ không có xung đột vì hai phần tử <table> có tên gọi khác nhau.

c. XML Namespaces – Các thuộc tính xmlns
-

- Khi dùng các Prefix trong XML, một namespace cho các Prefix phải được xác định.
Các namespace có thể được định danh bằng các Thuộc tính xmlns trong thẻ bắt đầu của một Phần


tử.
Cú pháp Khai báo Namespace trong XML

<element xmlns:name="URL">
Trang 14


Với:


Namespace bắt đầu với từ khóa xmlns.



Từ name là tiền tố của Namespace.



URL là định danh của Namespace.

- Namespace chỉ có tác động tại một phạm vi giới hạn trong tài liệu. Một phần tử chứa khai báo này và

tất cả các phần tử con của nó là trong phạm vi của Namespace đó. Sau đây là một ví dụ đơn giản của
Namespace trong XML:
<?xml version="1.0" encoding="UTF-8"?>
<cont:contact xmlns:cont="www.tutorialspoint.com/profile">
<cont:name>Tanmay Patil</cont:name>
<cont:company>TutorialsPoint</cont:company>
<cont:phone>(011) 123-4567</cont:phone>

</cont:contact>

-

Ở đây, tiền tố của Namespace là cont, và định danh của Namespace (URI) là
www.tutorialspoint.com/profile. Nghĩa là, các tên phần tử và tên thuộc tính với tiền tố cont(bao gồm
cả phần tử contact), là thuộc Namespace có tên là www.tutorialspoint.com/profile.

d. Uniform Resource Identifier (URI)
-

Một Uniform Resource Identifier (URI) là một chuỗi các ký tự trong đó xác định một tài nguyên
Internet.

- URI phổ biến nhất là Uniform Resource Locator (URL) trong đó xác định một địa chỉ miền trên

Internet. Loại không phổ biến của URI là Universal Resource Name (URN).

e. Những Namespace mặc định
-

Định danh namespace mặc định để lưu phần tử của chúng ta bằng cách sử dụng các Prefix trong tất
các phần tử con. Có cú pháp như sau:
xmlns="namespaceURI"

Ví dụ:
Trang 15


XML này mang thông tin bảng HTML:

<table xmlns=" /><tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
XML này mang thông tin về một phần của furniture:
<table xmlns=" /><name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

f. Namespaces trong sử dụng thực
-

XSLT à một ngôn ngữ có thể được sử dụng để chuyển đổi các tài liệu XML sang định dạng

-

khác.
Các tài liệu XML dưới đây, là một tài liệu được sử dụng để chuyển đổi XML thành HTML.

Namespace xác định các phần tử XSLT bên trong một tài
liệu HTML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl=" /><xsl:template match="/">
<html>
<body>

My CD Collection


<table border="1">
<tr>

<th style="text-align:left">Title</th>
Trang 16


<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

9. Hiển thị XML
- File XML thô có thể được xem ở tất cả các trình duyệt chính.
- Đừng nghĩ rằng các tập tin XML được hiển thị như các trang HTML
a. Xem tập tin XML

<?xml version="1.0" encoding="UTF-8"?>
- <note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


Trang 17


note.xml

-

Xem tập tin XML trên trong trình duyệt của bạn: click 2 lần để mở file

- Hầu hết các trình duyệt sẽ hiển thị tài liệu XML với các phần tử màu sắc.
- Sử dụng dấu cộng (+) hoặc dấu trừ (-) bên trái các phần tử để mở rộng hoặc thu gọn cấu trúc

phần tử.
- Để xem mã nguồn XML thô, chọn "View Page Source" hoặc "View Source" từ Menu của trình

duyệt.
b.

Xem một tập tin XML không hợp lệ
Nếu một tập tin XML bị lỗi được mở ra, một số trình duyệt sẽ báo cáo lỗi.
<?xml version="1.0" encoding="UTF-8"?>
- <note>
<to>Tove</to>
<from>Jani</Ffrom>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

note_error.xml


-

Xem tập tin XML trên trong trình duyệt của bạn: click 2 lần để mở file
Báo lỗi trong trình duyệt web:
Trang 18


c. Tại sao hiển thị XML lại giống như vậy?
- Tài liệu XML thì không mang thông tin về cách hiển thị dữ liệu.
- Kể từ khi thẻ XML đuợc phát minh bởi các tác giả của các tài liệu XML, trình duyệt không biết

nếu một thẻ như <table> mô tả một bảng HTML hoặc bàn ăn tối.
Nếu không có bất kỳ thông tin về cách để hiển thị dữ liệu, các trình duyệt chỉ có thể hiển thị tài

-

liệu XML như nó được.
d. Hiển thị tập tin XML với CSS?
- Dưới đây là một ví dụ về cách sử dụng CSS để định dạng một tài liệu XML.
- Chúng ta có thể sử dụng một tập tin XML như cd_catalog.xml (double click để mở file) và

một style sheet như cd_catalog.css (double click để mở file)
KẾT QUẢ: Các CD catalog được định dạng với file css
Dưới đây là một phần của tập tin XML. Dòng thứ hai liên kết các tập tin XML vào file CSS:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>

<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
Trang 19


<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
.
.
.
</CATALOG>

Định dạng XML với CSS là không nên. Sử dụng JavaScript hoặc XSLT để thay thế.

10. XML và XSLT
a.

Hiển thị XML với XSLT

XSLT là gì?

-Ngôn ngữ định kiểu mở rộng chuyển đổi (eXtensible Stylesheet Language Transformations) là đề xuất

ngôn ngữ style sheet cho XML. Nhu cầu chuyển đổi XML là rất cần thiết đến mức XSLT được coi là
một trong những đặc tính cơ bản của XML.
-XSLT cung cấp cách chuyển đổi dữ liệu XML từ dạng này sang dạng khác một các tự động.
-XSLT có độ phức tạp hơn so với CSS.
-Định dạng muốn chuyển sang thường có thể là là một tài liệu XML hoặc không; bạn có thể chuyển đổi
dữ liệu XML sang bất cứ dạng gì bằng cách tạo ra các bảng định kiểu XSLT và thực hiện chuyển đổi
dữ liệu.
-Nếu bạn muốn thay đổi định dạng đích, bạn chỉ việc thay đổi bảng định kiểu XSLT và thực hiện việc

chuyển đổi lần nữa.
-Điều này rất hiệu cho những người không phải là lập trình viên, ví dụ như nhà thiết kế, họ có thể thay
đổi XSLT để có được kết quả như ý.
b.

XSLT sử dụng XPath để tìm thông tin trong một tài liệu XML.

Ví dụ về XSLT
Trang 20


Chúng ta sẽ sử dụng các tài liệu XML sau đây:
<?xml version="1.0" encoding="UTF-8"?>

<food>
<name>Belgian Waffles</name>
$5.95</price>
<description>Two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>

</food>
<food>
<name>Strawberry Belgian Waffles</name>
$7.95</price>
<description>Light Belgian waffles covered with strawberries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
$8.95</price>
<description>Light Belgian waffles covered with an assortment of fresh berries and whipped
cream</description>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
$4.50</price>
<description>Thick slices made from our homemade sourdough bread</description>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
$6.95</price>
<description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description>
<calories>950</calories>
</food>
</breakfast_menu>
- Sử dụng XSLT để chuyển đổi XML thành HTML, trước khi nó được hiển thị trong một trình duyệt:

Ví dụ XSLT Stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
Trang 21


<html xsl:version="1.0" xmlns:xsl=" /><body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE">
<xsl:for-each select="breakfast_menu/food">
<div style="background-color:teal;color:white;padding:4px">
<span style="font-weight:bold"><xsl:value-of select="name"/> - </span>
<xsl:value-of select="price"/>
</div>
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt">


<xsl:value-of select="description"/>
<span style="font-style:italic"> (<xsl:value-of select="calories"/> calories per serving)</span>


</div>
</xsl:for-each>
</body>
</html>
-

Chuyển đổi tài liệu XML với XSLT:

Trang 22


11. XML và XPath
XPath (ngôn ngữ XML Path) là một ngôn ngữ để tìm kiếm thông tin trong một tài liệu XML.
a.


Thế nào là XPath?


XPath là một cú pháp để xác định các phần của một tài liệu XML



XPath bao gồm một thư viện chứa những chức năng tiêu chuẩn



XPath là một yếu tố chính trong XSLT



XPath cũng được sử dụng trong XQuery, XPointer và XLink



XPath là một khuyến cáo của W3C

b. Biểu thức đường dẫn XPath
- XPath sử dụng biểu thức đường dẫn để lựa chọn các node hoặc các node-set trong một tài liệu

XML. Những biểu thức đường dẫn trông rất giống như các biểu thức mà bạn nhìn thấy khi bạn làm
việc với một hệ thống file máy tính truyền thống.
Trang 23


-


Ngày nay, biểu thức XPath cũng có thể được sử dụng trong JavaScript, Java, XML Schema, PHP,

Python, C và C ++, và rất nhiều ngôn ngữ khác
c. XPath được sử dụng trong XSLT
- XPath là một yếu tố chính trong XSLT tiêu chuẩn. Nếu không có kiến thức XPath bạn sẽ không thể
tạo ra các tài liệu XSLT..
d.

Ví dụ về XPath
Chúng ta sẽ sử dụng tài liệu XML dưới đây:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>

<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
49.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
39.95</price>
</book>
</bookstore>
Trang 24


Trong bảng dưới đây, liệt kê một số biểu thức XPath và kết quả của biểu thức:
Biểu thức XPath

Kết quả

/bookstore/book[1]

Chọn phần tử book đầu tiên mà là con của phần tử
bookstore.

/bookstore/book[last()]

Chọn phần tử book cuối cùng mà là con của phần tử
bookstore


/bookstore/book[last()-1]

Chọn phần tử cuối cùng nhưng một book mà là con của
phần tử bookstore

/bookstore/book[position()<3]

Chọn 2 phần tử book mà là con của phần tử bookstore

//title[@lang]

Chọn tất phần tử title mà có thuộc tính tên lang

//title[@lang='en']

Chọn tất cả phần tử title mà có thuộc tính lang với giá trị
“en”

/bookstore/book[price>35.00]

Chọn tất cả phần tử book của phần tử bookstore mà có
phần tử với giá trị lớn hơn 35.00

/bookstore/book[price>35.00]/title

Chọn tất cả phần tử title của các phần tử book, của phần
tử bookstore mà có giá phần tử price với giá trị lớn hơn
35.00

12. XML - XLink và Xpointer




XLink được sử dụng để tạo ra các siêu liên kết trong tài liệu XML

Trang 25


×