Tutorial :XSLT Insert html content



Question:

I'm trying to insert some HTML at a given point. The XML file has a content node, which inside that has actual HTML. For exmaple here is the content section of the XML:

-----------------  <content>      <h2>Header</h2>      <p><a href="...">some link</a></p>      <p><a href="...">some link1</a></p>      <p><a href="...">some link2</a></p>  </content>  -----------------  

I need to insert a link after the header but before the first link, inside its own p tag. A little rusty with XSLT, any help is appreciated!


Solution:1

Given this source:

<html>      <head/>      <body>          <content>              <h2>Header</h2>              <p><a href="...">some link</a></p>              <p><a href="...">some link1</a></p>              <p><a href="...">some link2</a></p>          </content>      </body>  </html>  

This stylesheet will do what you want to do:

<?xml version="1.0" encoding="utf-8"?>  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">      <xsl:template match="@*|node()">          <xsl:copy>              <xsl:apply-templates select="@*|node()"/>          </xsl:copy>      </xsl:template>      <xsl:template match="/html/body/content/h2">          <xsl:copy>              <xsl:apply-templates/>          </xsl:copy>          <p><a href="...">your new link</a></p>      </xsl:template>  </xsl:stylesheet>  


Solution:2

<?xml version="1.0" encoding="UTF-8"?>  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">      <xsl:template match="/content">          <xsl:copy-of select="h2"/>          <a href="">foo</a>          <xsl:copy-of select="p"/>      </xsl:template>  </xsl:stylesheet>  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »