Изменение структуры документа на основе входных данных

Изменение структуры документа на основе входных данных

До сих пор созданные мной шаблоны основывались на определенном жестком скелете, точно задающем, что должно попасть в выходной документ и в каком порядке. Но при помощи таких элементов XSLT, как <xsl:element>, <xsl:attribute>, <xsl:text> и т.д., можно создавать новые узлы в рабочем порядке, на основе данных входного документа.

У вас уже есть небольшой опыт в этой области, поскольку мы работали с шаблонами значений атрибутов в главе 3. Как вы помните, при помощи таких шаблонов можно присвоить атрибуту значение выражения XPath, если заключить это выражение в фигурные скобки, { и }. Например, чтобы установить атрибут NAME в строковое значение элемента <DESCRIPTION>, дочернего элемента контекстного узла, это значение можно присвоить так: NAME={DESCRIPTION}. Теперь мы можем более подробно рассмотреть всю тему создания новых элементов и атрибутов «с ходу», начав с <xsl:element>.