Tải bản đầy đủ (.ppt) (14 trang)

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XML database Xpath & XSLT

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 (262.35 KB, 14 trang )

Lê Quang Lợi
-Email:
Nguyễn Đăng Khoa
-Email:
Nội dung

Làm việc với XSL và XSLT

Làm việc với Xpath

Câu hỏi thảo luận
Lê Quang Lợi- Nguyễn Đăng Khoa
Vài điều về XML

eXtensible Markup Language (XML)

Nền tảng dựa trên thẻ(tag) tự quy định

Cho phép mô tả dữ liệu có cấu trúc và phi cấu trúc

XML có dùng để chứa dữ liệu, hỗ trợ UNICODE

XML không bị giới hạn (có thể tùy biến/mở rộng)

XML là một chuẩn truyền thông trên nền mạng
Lê Quang Lợi- Nguyễn Đăng Khoa
Một tài liệu XML
<?xml version="1.0" encoding="utf-8" ?>
<lophoc>
<! mo ta hoc sinh >
<hocsinh>


<mahocsinh> 001</mahocsinh>
<tenhocsinh> Lê văn Long</tenhocsinh>
<ngaySinh> 10/12/1990</ngaySinh>
<quequan> Khoaichau</quequan>
</hocsinh>
</lophoc>
Lê Quang Lợi- Nguyễn Đăng Khoa
XSL và XSLT

XSL: Extensible Stylesheet Language

XSLT: Extensible Stylesheet Language Tranform

XSL: quy định khuôn dạng dữ liệu của file XML

XSLT: là bộ máy chuyển hỗ trợ chuyển dữ liệu XML
sang HTML hoặc tài liệu XML khác

Trình duyệt, ngôn ngữ hỗ trợ đối tượng thao tác XML
có xây dựng XSLT Engin để chuyển
Lê Quang Lợi- Nguyễn Đăng Khoa
Kiến trúc XSLT
Lê Quang Lợi- Nguyễn Đăng Khoa

Đầu vào:

file XML chứa dữ liệu

File XSL quy định khuôn dạng dữ liệu


Đầu ra dữ

HTML

Giá trị theo kiểu dữ liệu
XSL và XSLT
File data.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="render.xsl"?>
<message>Howdy!</message>

File render.xsl:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0”
xmlns:xsl="
<xsl:template match="/">
<html><body>
<h1><xsl:value-of select="message"/></h1>
</body></html>
</xsl:template>
</xsl:stylesheet>
Lê Quang Lợi- Nguyễn Đăng Khoa
Cách hoạt động của XSLT
Lê Quang Lợi- Nguyễn Đăng Khoa

Tài liệu XML chứa dữ liệu dạng Tree

<xsl:template match="/"> Tìm tới node tương ứng


Template là một luật để tìm các thẻ

<xsl:value-of select="…"/>: Hi n th n i dung c a th ể ị ộ ủ ẻ
XML

Nếu thẻ nào không sánh đúng sẽ không bị thay đổi

Sau khi áp dụng xong thì thay thế bởi dữ liệu mới
Các thành phần trong XSL
Lê Quang Lợi- Nguyễn Đăng Khoa

<xsl:value-of select="XPath expression"/>

<xsl:for-each select="XPath expression">
Text to insert and rules to apply
</xsl:for-each>

<xsl:choose>
<xsl:when test="some condition">
some code
</xsl:when>
<xsl:otherwise>
some code
</xsl:otherwise>
</xsl:choose>
Ví dụ cho cấu trúc for
Lê Quang Lợi- Nguyễn Đăng Khoa
<ul>
<xsl:for-each select="//book">

<li> <xsl:value-of select="title"/> </li>
</xsl:for-each>
</ul>
<ul>
<xsl:for-each select="//book">
<xsl:sort select="author"/>
<li> <xsl:value-of select="title"/> by
<xsl:value-of select="author"> </li>
</xsl:for-each>
</ul>
XPath

XPath là cú pháp/phương pháp lấy dữ liệu từ file XML

Xpath diễn tả đường đi trong tài liệu XML(Path in XML )

Xpath gần giống URL hoặc Paht trong hệ điều hành

Xpath như là ngôn ngữ lập trình cơ bản với

Hàm: count(elem), name() , contains(arg1, arg2)

Toán tử: +,==,-,*, /, DIV,MODE ….

Biểu thức toán học (chuỗi)

Xpath kết hợp với XSL để thao tác với file XML tốt hơn

Xpath và XSLT cung cấp khả năng tự động thao tác dữ liệu XML


Hỗ trợ các trình duyệt, ngôn ngữ lập trình thao tác XML = DOM
Lê Quang Lợi- Nguyễn Đăng Khoa
Lựa chọn các node trong XPath
Lê Quang Lợi- Nguyễn Đăng Khoa

<library>
<book>
<chapter/>
<chapter>
<section>
<paragraph/>
<paragraph/>
</section>
</chapter>
<chapter/>
</book>
<book/>
</library>

//chapter[2]/self::*

//chapter[2]/preceding::*

//chapter[2]/following::*

//chapter[2]/ancestor::*

//chapter[2]/descendant::*
Hàm trong Xpath
Lê Quang Lợi- Nguyễn Đăng Khoa

<?xml version='1.0'?>
<?xml-stylesheet
type="text/xsl"
href="union.xsl"?>
<root>
<x>green</x>
<y>
<x>blue</x>
<x>blue</x>
</y>
<z>
<x>red</x>
<x>red</x>
</z>
<x>green</x>
</root>
Quy ước đường đi trong XPath
Lê Quang Lợi- Nguyễn Đăng Khoa
H i u hành ệ đ ề Trong XML XPath:
/ = the root directory /library = the root element (if named
library )
/users/dave/foo = the file
named foo in dave in users
/library/book/chapter/section = every
section element in a chapter in every
book in the library
. = the current directory . = the current element
= the parent directory
= parent of the current element
/users/dave/* = all the files

in /users/dave
/library/book/chapter/* = all the
elements in /library/book/chapter
foo = the file named foo in
the current directory
section = every section element
that is a child of the current
element

×