给定如下XML文档:
a.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="c.xslt"?>
<all_books>
<item_books>
<book_number>8475484848</book_number>
<book_name>XML技术</book_name>
<price>80</price>
</item_books>
<item_books>
<book_number>35235348</book_number>
<book_name>Python programming</book_name>
<price>65</price>
</item_books>
<item_books>
<book_number>67676348</book_number>
<book_name>Java development</book_name>
<price>76</price>
</item_books>
<item_books>
<book_number>27974348</book_number>
<book_name>NodeJS development</book_name>
<price>90</price>
</item_books>
</all_books>
提出如下设计需求:
1、设计合适的XSLT文件,应用程序可调用XSLT文件中的降序模板实现格式化以上XML数据并按“price”降序输出。
2、设计合适的XSLT文件,应用程序可调用XSLT文件中的升序模板实现格式化以上XML数据并按“price”升序输出。
要求:
- 1、排序
- 2、价格80或80以上的用加粗显示
运行效果:
b.xslt
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<div style="width:600px;margin:0 auto 0 auto">
<table border="1" width="400px">
<tr>
<th>书号</th>
<th>书名</th>
<th>价格</th>
</tr>
<xsl:for-each select="all_books/item_books">
<xsl:sort order="descending" data-type="number" select="price" />
<tr>
<td>
<xsl:value-of select="book_number"/>
</td>
<td>
<xsl:value-of select="book_name"/>
</td>
<td>
<xsl:if test="price >= 80">
<span style="font-weight:bold;">
<xsl:value-of select="price"/>
</span>
</xsl:if>
<xsl:if test="price < 80">
<xsl:value-of select="price"/>
</xsl:if>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
c.xslt
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<div style="width:600px;margin:0 auto 0 auto">
<table border="1" width="400px">
<tr>
<th>书号</th>
<th>书名</th>
<th>价格</th>
</tr>
<xsl:for-each select="all_books/item_books">
<xsl:sort order="ascending" data-type="number" select="price" />
<tr>
<td>
<xsl:value-of select="book_number"/>
</td>
<td>
<xsl:value-of select="book_name"/>
</td>
<td>
<xsl:if test="price >= 80">
<span style="font-weight:bold;">
<xsl:value-of select="price"/>
</span>
</xsl:if>
<xsl:if test="price < 80">
<xsl:value-of select="price"/>
</xsl:if>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
提示:
运行结果: