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 | |