Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Rafael 09.10.2006 12:55 / 09.10.2006 12:57
но конструкция following-sibling::/@b ошибочналшибочка...:
following-sibling::*/@bитак:
<?xml version="1.0" encoding="windows-1251" ?> <zzz> <a b="1" c="2">1</a> <a b="2" c="2">2</a> <a b="2" c="DEF">3</a> <a b="3" c="DEF">4</a> <a b="4" c="2">5</a> </zzz>xml_test1.xsl:
<?xml version="1.0" encoding="windows-1251" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="zzz"> <xsl:apply-templates select="a"/> </xsl:template> <xsl:template match="a"> <xsl:choose> <xsl:when test="@b = following-sibling::*/@b and following-sibling::*/@c = 2"> <xsl:call-template name="print"/> <xsl:text> (c = 2)</xsl:text> <br/> </xsl:when> <xsl:otherwise> <xsl:if test="@c = 'DEF'"> <xsl:call-template name="print"/> <xsl:text> (c = DEF)</xsl:text> <br/> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="print"> <xsl:text><a </xsl:text> <xsl:text>b="</xsl:text><xsl:value-of select="@b"/> <xsl:text>" c="</xsl:text><xsl:value-of select="@c"/> <xsl:text>"/></xsl:text> </xsl:template> </xsl:stylesheet>xml_test1.html:
$sourceDoc[^xdoc::load[xml_test1.xml]] $transformedDoc[^sourceDoc.transform[xml_test1.xsl]] ^transformedDoc.string[ $.method[html] ]Получаем: