Đôi khi ta muốn tạo ra thêm một Attribute trong hồ sơ output với một trị số lấy từ tài liệu XML input. Thí dụ như tương ứng với mỗi tên của một Product, bạn muốn tạo ra một hyperlink để chuyển (pass) cái ProductID qua một trang Web khác, nơi đó sẽ hiển thị chi tiết về mặt hàng nầy. Để tạo ra một hyperlink trong một hồ sơ HTML, bạn cần tạo ra một Element A (Anchor) với một Attribute href. Bạn có thể dùng lệnh Attribute của XSL để thực hiện chuyện ấy như minh họa trong Style sheet dưới đây:
<?xml version="1.0"?>
version="1.0">
<xsl:template match="/"> <HTML>
<HEAD>
<TITLE>Northwind Home Page</TITLE> </HEAD>
<BODY>
<P>Customer Order</P> <P>Order No:
<xsl:value-of select="Order/@OrderNo"/> </P>
<P>Date:
<xsl:value-of select="Order/OrderDate"/> </P>
<P>Customer:
<xsl:value-of select="Order/Customer"/> </P> <TABLE Border="0"> <TR> <TD>ProductID</TD> <TD>Product Name</TD> <TD>Price</TD> <TD>Quantity Ordered</TD> </TR>
<xsl:for-each select="Order/Item"> <TR>
<TD>
<xsl:value-of select="Product/@ProductID"/> </TD>
<TD> <A>
<xsl:attribute
name="HREF">Products.asp?ProductID=
<xsl:value-of
select="Product/@ProductID"/>
</xsl:attribute>
<xsl:value-of select="Product"/> </A>
</TD> <TD>
<xsl:value-of select="Product/@UnitPrice"/> </TD>
<TD>
<xsl:value-of select="Quantity"/> </TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
Áp dụng Style sheet nầy vào tài liệu đặt hàng XML, bạn sẽ có hồ sơ HTML sau:
<HTML> <HEAD>
<TITLE>Northwind Home Page</TITLE> </HEAD>
<BODY>
<P>Customer Order</P> <P>Order No: 1047</P> <P>Date: 2002-03-26</P>
<P>Customer: John Costello</P> <TABLE Border="0"> <TR> <TD>ProductID</TD> <TD>Product Name</TD> <TD>Price</TD> <TD>Quantity Ordered</TD> </TR> <TR> <TD>1</TD> <TD>
<A HREF="Products.asp?ProductID=1">Chair</A> </TD> <TD>70</TD> <TD>6</TD> </TR> <TR> <TD>2</TD> <TD>
<A HREF="Products.asp?ProductID=2">Desk</A> </TD> <TD>250</TD> <TD>1</TD> </TR> </TABLE> </BODY> </HTML>
Phần BODY của HTML trên hiển thị như sau: Customer Order
Order No: 1047 Date: 2002-03-26
Customer: John Costello
ProductID Product Name Price Quantity Ordered
1 Chair 70 6
Bạn có thể để Mouse cursor lên chữ Chair hay chữ Desk để thấy tên hyperlink của chúng hiển thị trong status bar của browser.
Bài 5