Compartilhar via


Creating and Populating an HTML Template

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Você pode usar XSLT para mesclar regular simples dados XML com um modelo HTML para exibir. Considere o seguinte exemplo.

<?xml version="1.0"?>
<portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <stock exchange="nyse">
    <name>zacx corp</name>
    <symbol>ZCXM</symbol>
    <price dt:dt="number">28.875</price>
  </stock>
  <stock exchange="nasdaq">
    <name>zaffymat inc</name>
    <symbol>ZFFX</symbol>
    <price dt:dt="number">92.250</price>
  </stock>
  <stock exchange="nasdaq">
    <name>zysmergy inc</name>
    <symbol>ZYSZ</symbol>
    <price dt:dt="number">20.313</price>
  </stock>
</portfolio>

A estrutura de dados neste exemplo é repetitiva e regular — a stock estrutura elemento é repetida várias vezes com os mesmos elementos filho. Para esse exemplo, a stock informações serão exibidas em uma tabela com um stock em cada linha e células que contêm o nome, símbolo e preço. Primeiro crie um modelo de elementos HTML para exibir esses uma tabela.

<HTML>
  <BODY>
    <TABLE BORDER="2">
      <TR>
        <TD>Symbol</TD>
        <TD>Name</TD>
        <TD>Price</TD>
      </TR>
      <!-- repeat the following row for each stock -->
      <TR>
        <TD><!-- symbol goes here --></TD>
        <TD><!-- name goes here --></TD>
        <TD><!-- price goes here --></TD>
      </TR>
    </TABLE>

  </BODY>
</HTML>

Para preencher esse modelo com dados a partir de arquivo XML, você pode substituir manualmente os comentários com dados a partir de arquivo XML, que é essencialmente o processo que executa o XSLT. Elementos do espaço para nome XSLT são usados para localizar dados no arquivo XML e inseri-lo para o modelo HTML.

<HTML>
  <BODY>
    <TABLE BORDER="2">
      <TR>
        <TD>Symbol</TD>
        <TD>Name</TD>
        <TD>Price</TD>
      </TR>
      
        <TR>
          <TD></TD>
          <TD></TD>
          <TD></TD>
        </TR>
      
    </TABLE>

  </BODY>
</HTML>

O < xsl: for-each > elemento localiza um conjunto de elementos na dados XML ("stock" elementos dentro de "Portfólio" elemento) e se repetirá uma parte do modelo para cada um deles. Porque este exemplo contém três stock elementos, três linhas serão criadas.

O Selecione atributo descreve como localizar um conjunto de elementos no documento de origem. A sintaxe para esse atributo é chamado um padrãoe funciona muito como navegar uma hierarquia sistema de arquivos onde uma barra (/) seleciona subdiretórios relativo para o atual Diretório. Em um folha de estilo XSLT, a navegação começa na atual nó e testes para baixo na hierarquia de dados XML, selecionando todos os nós que correspondem a padrão. Nesta maiúsculas e minúsculas o padrão " portfólio/stock " começa na diretório raiz e testes para baixo através de "Portfólio" elemento para selecionar o "stock" três filhos.

Para muitas folhas estilo, o uso de nomes elemento e a/operador é suficientemente avançado para executar a transformação desejada. Os detalhes das outras operações XSLT estão descritos no Introdução à sintaxe do XPath.

Dentro de < xsl: for-each > elemento, você pode ainda mais analisar Down to selecionados filhos de cada "stock" elemento. O < xsl:value - de > elemento seleciona um filho específico e, em seguida, insere o de conteúdo de texto do que filho de modelo. Os padrões dentro de <xsl:value - dos> do elemento Selecione atributo não exigem começando a diretório raiz novamente mas são relativo para o elemento selecionado no < xsl: for-each > elemento.

A acima modelo pode ser transformado em um completo folha de estilo XSLT, colocando-lo em um arquivo XML e delimitador-lo dentro de < xsl: stylesheet > elemento.

         
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <HTML>
      <BODY>
        <TABLE BORDER="2">
          <TR>
            <TD>Symbol</TD>
            <TD>Name</TD>
            <TD>Price</TD>
          </TR>
          <xsl:for-each select="portfolio/stock">
            <TR>
              <TD><xsl:value-of select="symbol"/></TD>
              <TD><xsl:value-of select="name"/></TD>
              <TD><xsl:value-of select="price"/></TD>
            </TR>
          </xsl:for-each>
        </TABLE>

      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>

Como uma folha estilo é um arquivo XML própria, o arquivo começa com o declaração XML recomendado. O < xsl: stylesheet > elemento indica que este documento é um arquivo folha estilo e fornece uma localidade para declarar o espaço nome XSLT. Microsoft Internet Explorer para Windows Embedded CE oferece suporte ao espaço de nome XSL URL http://www.w3.org/TR/WD-XSL. O atual MSXML para Windows Embedded CE oferece suporte a dois espaço para nome URL do XSL http://www.w3.org/TR/WD-XSL e o XSLT Nome espaço URL http://www.w3.org/1999/XSL/Transform.

Você também deve quebra automática o modelo com <xsl: template correspondência = "/"> Para indicar que este modelo corresponde à raiz (/) do documento de código-fonte XML. Para obter mais informações, consulte A funcionalidade avançada XSLT.

O arquivo inteiro, incluindo o HTML que compreende o modelo, deve ser bem formado. Para obter mais informações sobre a criação ou converter HTML bem-formado, consulte Criação bem formado HTML.

Você deve adicionar um instrução de processamento para o arquivo XML para indicar que uma folha estilo é para ser usado. Na acima exemplo, se o nome do arquivo folha de estilo for "Stock.xsl", você faria em seguida, adicionar <? XML-tipo folhas de estilo = "text/xsl" HREF="Stock.xsl"? > Para o documento XML, imediatamente seguinte a <? XML versão = "1.0"? > instrução processamento.

O resultado final da execução que de documento do Portfólio a folha de estilo é as follows.

<HTML>
  <BODY>
    <TABLE BORDER="2">
      <TR>
        <TD>Symbol</TD>
        <TD>Name</TD>
        <TD>Price</TD>
      </TR>
      <TR>
        <TD>ZCXM</TD>
        <TD>zacx corp</TD>
        <TD>28.875</TD>
      </TR>
      <TR>
        <TD>ZFFX</TD>
        <TD>zaffymat inc</TD>
        <TD>92.250</TD>
      </TR>
      <TR>
        <TD>ZYSZ</TD>
        <TD>zysmergy inc</TD>
        <TD>20.313</TD>
      </TR>
    </TABLE>

  </BODY>
</HTML>

Esse resultado ilustra como o mecanismo básico transformação combina um modelo (definido na folhas de estilo) com dados do documento de origem para criar um resultado final.