Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
409 KB
Nội dung
Lê Quang Lợi -Email: loilequang@gmail.com Nguyễn Đăng Khoa -Email: khvn195@gmail.com 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="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> 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. .. • //chapter[2]/ancestor::* • //chapter[2]/descendant::* Hàm trong Xpath < ?xml version='1.0'?> < ?xml- stylesheet type="text/xsl" href="union.xsl"?> green blue blue red red green Lê Quang Lợi- Nguyễn Đăng Khoa Quy ước đường đi trong XPath Hệ đi ều hành Trong XML XPath: / = the root directory /library = the root element (if named... 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 . <x>green</x> <y> <x>blue</x> <x>blue</x> </y> <z> <x>red</x> <x>red</x> </z> <x>green</x> </root>. match="/"> <html><body> <h1><xsl:value-of select="message"/></h1> </body></html> </xsl:template> </xsl:stylesheet> Lê. Khoa <ul> <xsl:for-each select="//book"> <li> <xsl:value-of select="title"/> </li> </xsl:for-each> </ul> <ul> <xsl:for-each