xsl:copy¶
Элемент xsl:copy
создает копию текущего узла вне зависимости от его типа.
Вместе с текущим узлом в выходящее дерево копируются только узлы пространств имен, ассоциированные с ним. Дочерние узлы и узлы атрибутов в выходящий документ не копируются.
Синтаксис¶
1 2 3 |
|
Атрибуты:
use-attribute-sets
- необязательный атрибут, задает именованные наборы атрибутов.
Описание и примеры¶
Пример 1¶
Предположим, что в каждый элемент преобразовываемого документа нам нужно добавить атрибут element-count
со значением, равным количеству его дочерних элементов, а все остальные узлы оставить, как есть.
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 |
|
Пример 2¶
Если xsl:copy
используется для создания в выходящем документе копии узла элемента, в него при помощи атрибута use-attribute-sets
могут быть также включены именованные наборы атрибутов.
Предыдущее преобразование может быть переписано в виде:
1 2 3 4 5 6 7 8 9 10 |
|
Результат преобразования будет абсолютно идентичен выходящему документу, полученному в примере 1.
Пример 3¶
Пример показывает как атрибуты xml:lang
могут быть легко скопированы из исходного дерева в конечное. Если в стиле определен следующий именованный шаблон:
1 2 3 4 5 6 |
|
то вместо
1 |
|
можно легко сделать
1 |
|
если необходимо скопировать атрибут xml:lang
.
Пример 4¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 |
|