Get Umbraco Certified in October

5 courses in 4 different countries across 2 continents leaves no excuse.

Attend courses in the Netherlands, UK, USA and at Umbraco HQ in Denmark.

See the schedule and read more about our training here.

The legacy wiki pages are here for reference purposes only.
For up-to-date information make sure to check the documentation section.

(Copied from



Run a macro and insert the output into your XSLT.


RenderMacroContent(String Text, Int32 PageId)

Text: an encoded version of the template 'macro' code (see below for proper encoding)

PageId: NodeID for the node you want to use for the content for the macro

String Text Encoding Instructions:

When you are putting the code for your macro in a template it looks something like this:

<?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"></?UMBRACO_MACRO>

To encode this for the RenderMacroContent function follow these steps:

1. Change '<' to '&lt;'

&lt;?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3">&lt;/?UMBRACO_MACRO>

2. Change '>' to '&gt;'

&lt;?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"&gt;&lt;/?UMBRACO_MACRO&gt;

3. Change '"' to '&quot;'

&lt;?UMBRACO_MACRO macroAlias=&quot;LatestNews&quot; numberOfItems=&quot;3&quot;&gt;&lt;/?UMBRACO_MACRO&gt;

4. When you put this into the XSLT, enclose the whole thing in single quotes:

umbraco.library:RenderMacroContent('&lt;?UMBRACO_MACRO macroAlias=&quot;LatestNews&quot; numberOfItems=&quot;3&quot;&gt;&lt;/?UMBRACO_MACRO&gt;'...

Example XSLT Usage:

<xsl:value-of select="umbraco.library:RenderMacroContent('<?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"></?UMBRACO_MACRO>', @id)" disable-output-escaping="yes"/>

Little Bonus: XSLT to do the encoding for you

If you want to be able to just "cut & paste" the standard template macro code into your XSLT and have it encoded properly, add this bit of code to a new XSLT:

<xsl:variable name="Macro"> <xsl:value-of select="{PUT YOUR TEMPLATE MACRO CODE HERE}"/> </xsl:variable> <xsl:variable name="MacroEncoded"> <xsl:value-of select="umbraco.library:Replace(umbraco.library:Replace(umbraco.library:Replace($Macro, '"', '&quot;'), '>', '&gt;'), '<', '&lt;')"/> </xsl:variable>

Then use this to render the encoded XSLT to a test page in your browser (which you can then cut & paste into your XSLT code):

<xsl:value-of select="$MacroEncoded" />


Version 4 Warning

Warning, Umbraco 4 macros with new templates have a different syntax however the XSLT extention still requires the old v3 one so if you copy the macro inserted into a v 4 template you need to change it to v3


<umbraco:Macro Alias="Name" runat="server"></umbraco:Macro>


<?UMBRACO_MACRO macroAlias="Name" runat="server"></?UMBRACO_MACRO>

(with escaping) is the community mothership for Umbraco, the open source cms. With a friendly forum for all your questions, a comprehensive documentation and a ton of packages from the community. This site is running Umbraco version 7.3.0