Книга: XSLT
Элемент
Элемент <xsl:copy-of>
Элемент <xsl:copy-of>
позволяет осуществлять глубокое копирование узлов, при котором копируется не только узел, но и все его атрибуты и потомки. У этого элемента единственный атрибут:
• select
(обязательный). Узел или набор копируемых узлов. Этот элемент пуст и не имеет содержимого.
Ниже приведен пример работы этого элемента; в этом случае я заменил в листинге 3.10 элемент <xsl:for-each>
элементом <xsl:copy-of>
, который явно выбирает для копирования все атрибуты контекстного элемента.
Листинг 3.11. Применение <copy-of>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Этот код работает так же, как и предыдущий пример, копируя все элементы и атрибуты. С другой стороны, можно вообще обойтись без каких-либо изменений в листинге 3.10, — я могу просто использовать <xsl:copy-of>
для того, чтобы скопировать весь документ, выбрав корневой узел и скопировав всех его потомков:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:copy-of select="*"/>
</xsl:template>
</xsl:stylesheet>
При помощи <xsl:copy-of>
можно также копировать конкретные узлы и их потомков вместо того, чтобы задавать подстановку *. Например, следующее правило копирует все элементы <MASS>
и их потомков:
<xsl:template match="MASS">
<xsl:copy-of select="."/>
</xsl:template>
По этой причине я могу заменить элемент <MASS>
на элемент <DAY>
:
<xsl:template match="MASS">
<xsl:copy-of select="DAY"/>
</xsl:template>
- Создание шаблона
- Обработка дочерних узлов
- Доступ к значениям узлов
- Создание образцов выбора
- Выбор применяемого шаблона
- Чтение значений атрибутов
- Элемент
- Отключение вывода эскейп-последовательностей
- Написание значений атрибутов
- Шаблоны значений атрибутов
- Обработка символов-разделителей
- Элементы и
- Автоматическое выравнивание
- Правила по умолчанию в шаблоне
- Удаление содержимого
- Разрешение конфликтов шаблонов
- Элемент
- Элемент
- Элемент
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Вложение файлов в элементы списков
- Логические элементы
- 5.2. Основные приемы работы, элементы текстового редактора
- Правило 16. Группируйте связанные между собой элементы