STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    XSLT - Chuyển Đổi XML Thành HTML

    Giới thiệu Extensible Stylesheet Language - XSL, XSLT, cấu trúc tài liệu XSLT và các thao tác với XSLT. Hướng dẫn sử dụng eXtensible Style Sheet để transform một tài liệu XML thành HTML.
    05/09/2015 23/09/2020 4 phút đọc
    XSLT - Chuyển Đổi XML Thành HTML

    Giới thiệu

    XML là một ngôn ngữ phục vụ cho việc mô tả và trao đổi dữ liệu, tuy nhiên với tốc độ phát triển của công nghệ hiện nay XML cần thêm một số công cụ hỗ trợ để phát huy được tối đa sức mạnh của mình. Một trong số đó là eXtensible Style Sheet một ngôn ngữ có thể transform một tài liệu XML thành các định dạng khác.

    Bài viết giới thiệu về extensible stylesheet language, một ngôn ngữ dựa trên nền tảng của XML nhằm tạo ra các stylesheet có thể linh hoạt biến đổi cấu trúc của tài liệu XML phù hợp với nhiều mục đích khác nhau.

    Extensible Stylesheet Language (XSL)

    XSL là một ngôn ngữ được xây dựng dựa trên nền tảng ngôn ngữ XML có thể linh hoạt chuyển đổi XML thành các định dạng khác tùy theo mục đích hiển thị. XSL bao gồm 3 phần:

    xslt chuyển đổi xml thành html

    XSL Transformation (XSLT)

    Là ngôn ngữ dùng để chuyển đổi XML thành định dạng khác như: HTML, Wireless Markup Language và thậm chí là một tài liệu XML với cấu trúc mới.

    Cấu trúc của một tài liệu XSLT

    Một tài liệu XSLT được lưu trong file có định dạng *.xsl. Có cấu trúc tổng quát:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	…
    
    </xsl:stylesheet>

    Trong một tài liệu XSLT element <xsl:stylesheet> chính là element root của tài liệu.

    Khai báo XSLT vào một tài liệu XML

    Để khai báo XSLT trong một tài liệu XML:

    <?xml-stylesheet type="text/xsl" href="uri"?>

    Làm quen với XSLT

    Lệnh value-of

    Lệnh value-of dùng để lấy dữ liệu của thẻ hiện hành và đưa nó vào tài liệu output.

    Cú pháp của lệnh value-of:

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

    với select dùng để khai báo element cần lấy giá trị.

    Lệnh for-each

    Lệnh for-each dùng để khai báo một vòng lặp cho các element giống nhau.

    Cú pháp của lệnh for-each:

    <xsl:for-each select="expression">
    …
    </xsl:for-each>

    Lệnh attribute

    Lệnh attribute dùng để đưa 1 attribute vào tài liệu output với giá trị được lấy theo số liệu ở tài liệu gốc.

    Cú pháp của lệnh attribute:

    <xsl:attribute name="attribute_name">
    …
    </xsl:attribute>

    Các lệnh về điều kiện

    Nếu đã quen với ngôn ngữ lập trình thì lệnh điều khiển của XSLT cũng tương đối giống với lệnh điều trong các ngôn ngữ lập trình. XSLT cung cấp 2 lệnh về điệu kiện là lệnh if và lệnh choose.

    Cú pháp lệnh if:

    <xsl:if test="expression"> … </xsl:if>

    Cú pháp lệnh choose:

    <xsl:choose>
    	<xsl:when test=”expression>
    		…
    	</xsl:when>
    		…
    	<xsl:otherwise>
    		…
    	</xsl:otherwise>
    </xsl:choose>

    Ví dụ

    Một tài liệu XML: article.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <list>
    	<article id="65">
    		<author>Hòa Đinh</author>
    		<title>Conditional Compilation Directives Giải Quyết Xung Đột Include</title>
    		<link>http://www.stdio.vn/articles/read/65-conditional-compilation-directives-giai-quyet-xung-dot-include</link>
    		<publish_date>23/09/14</publish_date>
    		<description>#include, một chỉ thị hết sức quen thuộc với bất cứ lập trình viên nào đã và đang làm việc với ngôn ngữ C/C++.</description>
    	</article>
    	<article id="64">
    		<author>La Kiến Vinh</author>
    		<title>So Sánh null Và Rỗng</title>
    		<link>http://www.stdio.vn/articles/read/64-so-sanh-null-va-rong</link>
    		<publish_date>22/09/14</publish_date>
    		<description>KHÔNG TỒN TẠI và TỒN TẠI CÁI KHÔNG là 2 khái niệm khác nhau nhưng dễ gây nhầm lẫn.</description>
    	</article>
    </list>

    Tài liệu XML này mô tả thông tin tốt, tuy nhiên với trường hợp list chứa quá nhiều element article, việc theo dõi dữ liệu bên trong tài liệu hết sức khó khăn, do đó sẽ tạo một tài liệu XSLT để chuyển dữ liệu bên trong tài liệu XML thành một tài liệu HTML sau đó sử dụng trình duyệt web để theo dõi nội dung bên trong.

    Tài liệu XSLT: article.xsl

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:template match="/">
    		<HTML>
    			<HEAD>
    				<TITLE>Newest Articles</TITLE>
    			</HEAD>
    			<BODY>
    				<Center>
    					<H1>Newest Articles</H1>
    				</Center>
    				<TABLE Border="1">
    					<TR align="center" bgcolor="silver">
    						<TD>
    							<b>ID</b>
    						</TD>
    						<TD>
    							<b>Author</b>
    						</TD>
    						<TD>
    							<b>Title</b>
    						</TD>
    						<TD>
    							<b>Published Date</b>
    						</TD>
    						<TD>
    							<b>Description</b>
    						</TD>
    					</TR>
    					<xsl:for-each select="//article">
    						<TR>
    							<xsl:if test="@id mod 2 = 0">
    								<xsl:attribute name="bgcolor">cyan</xsl:attribute>
    							</xsl:if>
    							<TD>
    								<xsl:value-of select="@id" />
    							</TD>
    							<TD>
    								<xsl:value-of select="author" />
    							</TD>
    							<TD>
    								<A>
    									<xsl:attribute name="HREF">
    										<xsl:value-of select="link" />
    									</xsl:attribute>
    									<xsl:value-of select="title" />
    								</A>
    							</TD>
    							<TD>
    								<xsl:value-of select="publish_date" />
    							</TD>
    							<TD>
    								<xsl:value-of select="description" />
    							</TD>
    						</TR>
    					</xsl:for-each>
    				</TABLE>
    			</BODY>
    		</HTML>
    	</xsl:template>
    </xsl:stylesheet>

    Thêm chỉ thị : <?xml-stylesheet type="text/xsl" href="article.xsl"?> vào tài liệu XML để nhúng tài liệu XSLT vào. Sau đó mở tài liệu XML bằng trình duyệt web.

    tai-lieu-xls

    XSLT đã transfer tài liệu XML gốc thành một tài liệu HTML, thông qua cách hiển thị của HTML có thể dễ dàng theo dõi được nội dung bên trong của tài liệu XML ban đầu.

    0 Bình luận
    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021