xsl:key Element
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 |
|
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