Элемент <xsl:if> в XSLT
Определение и использование
<xsl:if> содержит шаблон, который применяется только при выполнении указанных условий.
Совет: Используйте <xsl:choose> в сочетании с <xsl:when> и <xsl:otherwise>, чтобы выразить多重ные условия проверки!
Грамматика
<xsl:if test="expression"> <!-- Content: template --> </xsl:if>
Атрибут
Атрибут | Значение | Описание |
---|---|---|
test | expression | Обязателен. Определяет условие для проверки. |
Ин实例
Пример 1
Когда цена CD превышает 10,选取 title и artist:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0"> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Моя коллекция CD</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <xsl:if test="price > 10"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:if> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Просмотрите файл XML,Просмотрите файл XSL,Просмотрите результат.
Пример 2
Показывать заголовок каждого CD. Если это не последний или предпоследний CD, то между заголовками CD вставлять ", ". Если это последний CD, то после заголовка добавить "!". Если это предпоследний CD, то после него добавить ", and ":
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0"> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Моя коллекция CD</h2> <p>Названия: <xsl:for-each select="catalog/cd"> <xsl:value-of select="title"/> <xsl:if test="position()!=last()"> <xsl:text>, </xsl:text> </xsl:if> <xsl:if test="position()=last()-1"> <xsl:text> и </xsl:text> </xsl:if> <xsl:if test="position()=last()"> <xsl:text>!</xsl:text> </xsl:if> </xsl:for-each> </p> </body> </html> </xsl:template> </xsl:stylesheet>