XML

  • Текстовый формат файла
  • Элементы имеет вид HTML но только на первый взгляд
  • На XHTML составленная страница – это одно из приложений языка XML
  • Все тэги в XHTML должны закрываться. <тэг>
  • В XHTML бесконечное количество команд
  • XML хранит иерархическую структуру данных

XSL, XSLT

  • XSL – язык для преобразования XML документов.
  • XSLT – язык семейства XSL
  • Для выделения данных есть много способов например PHP
  • Преобразования XSLT основаны на шаблонах

XML Sample:

<?xml version="1.0" encoding="utf-8" ?>
<inimesed>
  <inimine>
    <eesnimi>Jaan</eesnimi>
    <perenimi>Krohhin</perenimi>
    <synd>2002</synd>
  </inimine>
  <inimine>
    <eesnimi>Sofia</eesnimi>
    <perenimi>Morozova</perenimi>
    <synd>2002</synd>
  </inimine>
  <inimine>
    <eesnimi>Daniil</eesnimi>
    <perenimi>Gorohov</perenimi>
    <synd>2002</synd>
  </inimine>
  <inimine>
    <eesnimi>Artjom</eesnimi>
    <perenimi>Kabilov</perenimi>
    <synd>2003</synd>
  </inimine>
  <inimine>
    <eesnimi>Artem</eesnimi>
    <perenimi>Stryzhakov</perenimi>
    <synd>2003</synd>
  </inimine>
  <inimine>
    <eesnimi>Nikita</eesnimi>
    <perenimi>Rimitsen</perenimi>
    <synd>2004</synd>
  </inimine>
</inimesed> 

XSLT Sample:

<xsl:template match="/">
      Esimene inimene:
      <xsl:value-of select="/inimesed/inimine[1]/eesnimi"/>
      <br></br>
      Viimane inimene:
      <xsl:value-of select="/inimesed/inimine[last()]/eesnimi"/>
      <br></br>
      Esitäht
      <xsl:value-of select="substring(/inimesed/inimine[1]/eesnimi,1,1)"/>
      <br></br>
      Oma initsialid:
      <xsl:value-of select="concat(
                    substring(/inimesed/inimine[1]/eesnimi,1,1),'. ',
                    substring(/inimesed/inimine[1]/perenimi,1,1),'.')"/>
      <br></br>
      Oma ees- ja perenimi  pikkus:
      <xsl:value-of select="string-length(/inimesed/inimine[1]/eesnimi) + string-length(/inimesed/inimine[1]/perenimi)"/>
      <br></br>
      Kui palju inimest failis
      <xsl:value-of select="count(/inimesed/inimine)"/>
      <br></br>
      Kui palju inimest sündisid 2002 aastal:
      <xsl:value-of select="count(/inimesed/inimine[synd=2002])"/>
      <br></br>
      Kui palju inimest sündisid pärast 2002 aastat:
      <xsl:value-of select="count(/inimesed/inimine[synd &gt; 2002])"/>
      <br></br>
      Kui palju inimest sündisid enne 2002 aastat:
      <xsl:value-of select="count(/inimesed/inimine[synd &lt; 2002])"/>
      <br></br>
      kordumine:
      <ul>
        <xsl:for-each select="/inimesed/inimine">
          <li>
            <xsl:value-of select="concat(perenimi,'...',synd)"/>
          </li>
        </xsl:for-each>
      </ul>
      <br></br>

      Naidata koik nimed A
    <xsl:for-each select="/inimesed/inimine">
      <xsl:if test="starts-with(., 'A')">
        <li>
          <xsl:value-of select="eesnimi"/>
        </li>
      </xsl:if>
    </xsl:for-each>      <br></br>
      Naidata koik viimased perenimi tahed
          <xsl:for-each select="/inimesed/inimine">
        <li>
          <xsl:value-of select="substring(perenimi,string-length(perenimi),string-length(perenimi))"/>
        </li>
    </xsl:for-each>      <br></br>

      Naidata esimese inimese nimi ja viimast perenimi kokku
  <xsl:value-of select="concat(/inimesed/inimine[1]/eesnimi,'',/inimesed/inimine[last()]/perenimi)" />      
      <br></br>

    </xsl:template>

ASPX file

<%@ Page Title="Home Page" Language="C#"%>

<!Doctype html>
<html>
<head runat="server">
    <title>Inimeste andmed XSLT</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:Xml runat="server" DocumentSource="~/InimesteBaas.xml" TransformSource="~/InimesteLisa.xslt"></asp:Xml>
        </div>
    </form>
</body>
</html>

Result