MENU
Constructing Nodes
This section covers the instructions used to construct new nodes: <xsl:document>, <xsl:result-document>, <xsl:element>, <xsl:attribute>, <xsl:namespace>, <xsl:comment>, <xsl:processing-instruction>, <xsl:text>, <xsl:sequence> and <xsl:number>. The example below builds a single output element containing an attribute, a namespace declaration, a comment, a processing instruction, a sequence of integers, and a formatted number.<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="3.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="/">
<xsl:text> </xsl:text>
<xsl:document>
<xsl:element name="a">
<xsl:namespace name="ns"
select="'http://example.com'"/>
<xsl:attribute name="x" select="division/num2"/>
<xsl:attribute name="y">10</xsl:attribute>
<xsl:text> </xsl:text>
<xsl:comment>COMMENT</xsl:comment>
<xsl:processing-instruction name="pi"
select="'INSTRUCTION'"/>
<xsl:text> </xsl:text>
<xsl:sequence select="(1 to 5)"/>
<xsl:text> </xsl:text>
<xsl:number value="100000000"
grouping-separator="," grouping-size="3"/>
<xsl:text> </xsl:text>
</xsl:element>
</xsl:document>
</xsl:template>
</xsl:transform><xsl:attribute> attributes: namespace ({uri}), separator ({string}), type (eqname), validation ("strict" | "lax" | "preserve" | "strip"), on-empty (expression).
<xsl:element> attributes: namespace ({uri}), inherit-namespaces ("yes" | "no"), use-attribute-sets (eqnames), type (eqname), validation ("strict" | "lax" | "preserve" | "strip"), on-empty (expression).
<xsl:number> attributes: select (expression), level ("single" | "multiple" | "any"), count (pattern), from (pattern), format ({string}), lang ({language}), letter-value ({"alphabetic" | "traditional"}), ordinal ({string}), start-at ({integer}).
To construct a document intended to form a final result rather than an intermediate result, use <xsl:result-document> instead of <xsl:document>. It can have the following attributes: format ({eqname}), href ({uri}), validation ("strict" | "lax" | "preserve" | "strip"), type (eqname), method ({"xml" | "html" | "xhtml" | "text" | eqname}), byte-order-mark, cdata-section-elements, doctype-public, doctype-system, encoding, escape-uri-attributes, html-version, include-content-type, indent, item-separator, media-type, normalization-form ({"NFC" | "NFD" | "NFKC" | "NFKD" | "fully-normalized" | "none" | nmtoken}), omit-xml-declaration, parameter-document, standalone ({"yes" | "no" | "omit"}), suppress-indentation, undeclare-prefixes, use-character-maps, output-version ({nmtoken}).