base-uri

O URI base de um nó

Descrição

A função fn:base-uri acha o URI base de um nó. O argumento $arg pode ser qualquer tipo de nó. Se $arg for um nó de documento, a função em geral devolve o URI de onde o documento veio, o que também se consegue com fn:document-uri.

Se $arg for um elemento, a função devolve o valor do atributo xml:base dele, se houver, ou o xml:base do ancestral mais próximo. Se nenhum ancestral tiver xml:base, vale o URI base do nó de documento.

Se $arg for outro tipo de nó, a função devolve o mesmo valor que devolveria para o elemento pai ou o documento dele.

Parâmetros

Descrição

arg:node()

o nó cujo URI base se quer achar; se omitido, o nó de contexto

Exemplos

Os exemplos abaixo usam este documento de entrada:

<xsl:variable name="cats" select="doc('http://www.functx.com/input/cats.xml')"/>

<!-- content of cats.xml -->
<catalogs>
  <catalog name="ACC" xml:base="http://example.org/ACC/">
    <product number="443" href="prod443.html"/>
    <product number="563" href="prod563.html"/>
  </catalog>
  <catalog name="WMN" xml:base="http://example.org/WMN/">
    <product number="557" href="prod557.html"/>
  </catalog>
</catalogs>

XPath

Resultado

base-uri($cats//catalog[1])

http://example.org/ACC/

base-uri($cats//catalog[2]/product)

http://example.org/WMN/

base-uri($cats//catalog[2]/product/@href)

http://example.org/WMN/

base-uri($cats)

http://www.functx.com/input/cats.xml

base-uri($cats/catalogs)

http://www.functx.com/input/cats.xml

Veja também