document()
document()
Функция document особенно полезна, потому что с ее помощью можно читать несколько документов и обрабатывать их содержимое. Функция document применяется следующим образом:
node-set document(uri, base-uri?)
Функция принимает параметр uri, который может представлять собой URI читаемого документа или набор узлов, чьи строковые значения задают идентификаторы URI. Второй, необязательный параметр base-uri представляет собой набор узлов, базовый URI которого используется для вычисления всех относительных URI, могущих находиться в параметре uri.
В следующем примере (листинг 8.2) я обрабатываю в процессоре XSLT один документ, planets1.xml, и также считываю и обрабатываю второй документ, planets2.xml. Вот planets1.xml.
Листинг 8.2. planets1.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS href="planets2.xml">
</PLANETS>
Вот planets2.xml — в элементе <PLANET> содержится одна планета (листинг 8.3).
Листинг 8.3. planets2.xml
<?xml version="1.0"?>
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.0553</MASS>
<DAY UNITS="days">58.65</DAY>
<RADIUS UNITS="miles">1516</RADIUS>
<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->
</PLANET>
А вот таблица стилей planets.xml, которую я применяю к planets1.xml. Таблица стилей содержит шаблон, выбирающий элемент <PLANET> в planets1.xml, и в этом шаблоне я считываю planets2.xml при помощи <xsl:apply-templates> и функции document (листинг 8.4).
Листинг 8.4. Применение функции document
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates select="document(@href)"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
.
.
.
<xsl:template match="DAY">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
</xsl:stylesheet>
Эта таблица стилей обрабатывает данные в planets1.xml и также считывает и обрабатывает planets2.xml; вот полный результат — как видите, данные для planets2.xml добавились нужным образом:
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<TR>
<TD>Mercury</TD>
<TD>.0553 (Earth = 1)</TD>
<TD>1516 miles</TD>
<TD>58.65 days</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Функция document удобна, поскольку позволяет считывать на этапе выполнения такие дополнительные документы, как справка о правах владения или отказе от них, фирменный бланк и т.п.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Объект Document
Объект Document Для работы с документами HTML в языке JavaScript существует отдельный объект – Document. Пользуясь его свойствами и методами, сценарий JavaScript может получить информацию о текущем документе, загруженном в окно браузера, а также управлять отображением содержимого этого
Элемент <xsl:document>: создание нескольких выходных документов
Элемент <xsl:document>: создание нескольких выходных документов В рабочем проекте XSLT 1.1 был представлен новым элемент, <xsl:document>, предназначенный для поддержки нескольких выходных документов, — и, скорее всего, этот элемент будет добавлен в XSLT 2.0. Он имеет следующие
document.write против innerHTML
document.write против innerHTML Контекстная реклама, пожалуй, является одним из главных «тормозов» при загрузке страницы (при прочих равных условиях), ибо активно применяет document.write, который «морозит» загрузку до получения всех необходимых JavaScript-файлов с внешних серверов.
Объект document
Объект document Прежде всего надо отметить, что объект document существует в единственном экземпляре для всего HTML-документа. Он присутствует всегда, если существует HTML-документ, поэтому специально создавать его не требуется.activeElementИспользуется в сценарии для получения ссылки
Подчиненные объекты и коллекции объекта document
Подчиненные объекты и коллекции объекта document Объект document содержит внутри себя множество подчиненных объектов и коллекций. В следующей таблице перечисленны свойства, возвращающие ссылки на них, и приведены описания соответствующих объектов и коллекций.Коллекция all
Применение модели Document Object Model
Применение модели Document Object Model С появлением модели Document Object Model (DOM) значительно упростилось создание динамически генерируемых Web-узлов, благодаря приданию дополнительных функциональных возможностей статическим элементами в документах HTML/XML. Простая строка кода
Вызов document(string)
Вызов document(string) В случае если функции document передана строка, возвращаемое множество будет состоять из корневого узла внешнего документа. URI этого документа как раз и сообщается строковым аргументом функции document.Интересной особенностью является возможность передать
Вызов document(node-set)
Вызов document(node-set) Передавая функции document множество узлов, можно получить доступ к нескольким документам, URI которых являются строковыми значениями узлов множества. Это, в частности, позволяет обращаться к документам, URI которых указаны в узлах обрабатываемого документа.
Вызов document(node-set, node-set)
Вызов document(node-set, node-set) Если функции document передаются два множества узлов, то вычисление результата можно описать примерно следующим образом:? каждый из узлов первого аргумента преобразуется в строковый вид;? для каждого из полученных значений выполняется вызов типа