Compartilhar via


xsl:key Element

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

O < xsl: key > elemento declara um nomeado chave para uso com o chave função em expressões para habilitar mais fácil acessar em documentos complexos XML XML Path Language (XPath). As chaves são de alto nível elementos, que significa que eles não podem aparecer em um modelo.

Syntax

<xsl:key
  name = QName
  match = Pattern
  use = expression>
</xsl:key>

Atributos

  • Nome
    Identifica a chave dentro de documento XSL Transformations (XSLT).
  • Corresponder
    Especifica o padrão que deve ser verificado por correspondência. O processador Extensible Stylesheet Language (XSL) preprocesses documento de origem e identifica todos os elementos dentro de documento que coincidem com o padrão fornecido com eficiência. Porque a coincidência é feita em um nó - por - base nó, ele não é necessário especificar global padrão coincide com nas seqüência de caracteres padrão.
  • Usar
    Fornece o valor para fazer referência um elemento que satisfaça o padrão especificado na Corresponder atributo. Porque o contexto temporariamente está definido para esse elemento, o valor da Usar atributo deve ser um expressão XPath que identifica cada correspondência específica, such as um ID ou elemento semelhante.

Elemento informações

Número de ocorrências

Ilimitado

Elementos pai

xsl: stylesheet

Elementos filho

Nenhum

Remarks

O < xsl: key > elemento fornece um alternativo mecanismo para de resolução elementos em um documento XML. Em efeito, chaves crie um Diretório de elementos específicos de um documento código-fonte XML, com os valores gerados a partir de Usar Expressões referir-se a esses elementos. O primário diferença entre uma chave e um ID é que uma identificação precisa estar um nome qualificado fixa, enquanto uma chave pode ser criado de uma ou várias expressões concatenadas.

O < xsl: key > elemento é projetado para ser usado com o XPath chave função. O chave função leva dois argumentos — o nome da chave e seu valor — e, em seguida, um recupera o nó ou nós associado com esse par key–value, ou retorna um vazio node-set se não compatível elemento for encontrado. Ao contrário dos elementos ID, uma expressão Key() pode ser correspondência por more than um nó.

É possível, naturalmente, para criar um expressão XPath que recupera os dados mesmos uma chave, mas ao trabalhar com documentos XML relativamente grandes, uma chave é geralmente mais rápida porque ele basicamente indexa os locais dos dados desejados Ahead of tempo.

Enquanto o analisador XSLT compila expressões de pesquisa para a chave elemento Ahead of tempo, a atual implementação não explicitamente cria o índice, a menos que um chave função for encontrada. Isso garante que se uma transformação ignora o chave Em seguida, a indexação inicial Time-intensive chamada de função não é executada. Lembre também que, de acordo com as especificações Worldwide Web Consortium (W3C), referências de parâmetro ou variável não podem ser usadas como parte de um < xsl: key > Corresponde, ostensivamente para evitar referências circulares.

Example

O seguinte exemplo demonstra uso o < xsl: key > elemento.

Não foi possível salvar o arquivo XML

<?xml version="1.0"?>
<?xml-stylesheet href="key_sample.xsl" type="text/xsl"?>
<names>
   <last="Hamilton" first="David"/>
   <last="Hamilton" first="James R"/>
   <last="Hamlin" first="Jay"/>
</titles>

key_sample.xsl

Folha de estilo key_sample.xsl define uma chave nomeado " nome-pesquisa " que localiza elementos Nome que têm um atributo último igual a "Hamilton".

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:key name="name-search" match="name" use="@last"/>
   <xsl:template match="/">
   <HTML>
      <BODY>
        <xsl:for-each select="key(name-search', 'Hamilton')">
         <div>
         <xsl:value-of select="@first"/>
         </div>
      </xsl:for-each>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>

Saída

David
James R

See Also

Reference

XSLT Elements
key Function
id Function