Книга: Технология 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>
- Функция document
- Передача вызовов конструктора с помощью this
- Вызов document(node-set, node-set)
- Вызов document(node-set)
- Вызов document(string, node-set)
- Conventions used in this document
- Appendix H. GNU Free Documentation License
- Why this document was written
- Terms used in this document
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC