Skip to content

XSLT <xsl:apply-imports>

How to use <xsl:apply-imports> in XSLT to override precedence rules and apply template rules from imported stylesheets instead of the main stylesheet.

XSLT <xsl:apply-imports>

The <xsl:apply-imports> element applies a template rule from an imported style sheet.

Syntax

<xsl:apply-imports/>

Attributes

The <xsl:apply-imports> element has no attributes.

Example

Suppose we have a style sheet called "standard.xsl" that contains a template rule for message elements:

standard.xslxml
<?xml version="1.0"  encoding="UTF-8"?>  
<xsl:stylesheet version="1.0"  
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  
<xsl:template match="message">  
	<h2><xsl:apply-templates/></h2>  
</xsl:template>  
  
</xsl:stylesheet>

Another style sheet could import "standard.xsl", and modify the message elements, like this:

other.xslxml
<?xml version="1.0"  encoding="UTF-8"?>  
<xsl:stylesheet version="1.0"  
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  
<xsl:import href="standard.xsl"/>  
  
<xsl:template match="message">  
	<div style="border:solid blue">  
	<xsl:apply-imports/>  
	</div>  
</xsl:template>  
  
</xsl:stylesheet>

The result would be to transform a message into an element of the form:

<div style="border:solid blue"><h2>...</h2></div>
Navigation