Книга: Технология XSLT

Вызов document(string)

Вызов document(string)

В случае если функции document передана строка, возвращаемое множество будет состоять из корневого узла внешнего документа. URI этого документа как раз и сообщается строковым аргументом функции document.

Интересной особенностью является возможность передать пустую строку:

document('')

В этом случае document возвратит корневой узел самого преобразования. При помощи document('') можно получать доступ к информации, хранящейся в самом преобразовании (оно ведь тоже является ХМL-документом). К сожалению, перед обращением к документу не существует способа проверить его существование. Процессор может либо выдать ошибку, либо возвратить пустое множество.

Пример

Листинг 8.61. Преобразование

<xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:user="urn:user-namespace">
 <user:data>
  <item>1</item>
  <item>2</item>
 </user:data>
 <xsl:variable
  name="data" select="document('')/xsl:stylesheet/user:data"/>
 <xsl:template match="/">
  <xsl:copy-of select="$data/item"/>
 </xsl:template>
</xsl:stylesheet>

Листинг 8.62. Выходной документ

<item
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:user="urn:user-namespace">1</item>
<item
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:user="urn:user-namespace">2</item>

Оглавление книги


Генерация: 0.037. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз