суботу, 27 листопада 2010 р.

магія XSLT

збирати все в xml - це добре. далі з цим xml можна робити багато цікавого й корисного, наприклад форматувати для виводу користувачу, більше того - можна створювати xhtml з різними контролами
Для самого простого прикладу візьмемо наступний XML:
<msgs>
 <error>Login or password is wrong</error>
 <info>Cookies is disabled</info>
</msgs>

І спробуємо застосувати до нього такий XSLT:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:for-each select='msgs/error'>
<div style='color: red'>
<xsl:value-of select='.'/>
      <xsl:for-each select="button">
<xsl:element name="input">
 <xsl:attribute name="type">button</xsl:attribute>
 <xsl:if test="@label">
   <xsl:attribute name="name"><xsl:value-of select="@label"/></xsl:attribute>
 </xsl:if>
 <xsl:attribute name="value"><xsl:value-of select="@val"/></xsl:attribute>
 <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
 <xsl:attribute name="onclick"><xsl:value-of select="@onclick"/></xsl:attribute>
</xsl:element>
</div></br>
      </xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

На виході ми отримуємо чудовий XHTML :) якщо хочете - то навіть HTML5