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... 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ữ
Trang 1Lê Quang Lợi
-Email: loilequang@gmail.com
Nguyễn Đăng Khoa
-Email: khvn195@gmail.com
Trang 2Nộ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
Trang 3Và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
Trang 4Mộ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>
Trang 5XSL và XSLT
XSL: Extensible Stylesheet Language
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
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
Trang 6Kiến trúc XSLT
Đầ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
Trang 7XSL 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="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">
<html><body>
<h1><xsl:value-of select="message"/></h1>
</body></html>
</xsl:template>
</xsl:stylesheet>
Trang 8Cách hoạt động của XSLT
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
Trang 9Các thành phần trong XSL
<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>
Trang 10Ví dụ cho cấu trúc for
<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>
Trang 11 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
Trang 12Lựa chọn các node trong XPath
<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::*
Trang 13Hàm trong Xpath
<?xml version = ' 1.0 ' ?>
<?xml-stylesheet
type="text/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>
Trang 14Quy ước đường đi trong XPath
/ = the root directory /library = the root element (if named
library ) /users/dave/foo = the file
/library/book/chapter/section = ev ery
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
foo = the file named foo in
the current directory
section = ev ery section element that is a child of the current
element