emacs lisp text processing example (html5 figure/figcaption)

S.Mandl StefanMandl at web.de
Tue Jul 5 17:30:13 EDT 2011


> haven't used XSLT, and don't know if there's one in emacs...
>
> it'd be nice if someone actually give a example...
>

Hi Xah, actually I have to correct myself. HTML is not XML. If it
were, you
could use a stylesheet like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="p[@class='cpt']">
  <figcaption>
    <xsl:value-of select="."/>
  </figcaption>
</xsl:template>

<xsl:template match="div[@class='img']">
  <figure>
    <xsl:apply-templates select="@*|node()"/>
  </figure>
</xsl:template>

<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>


</xsl:stylesheet>

which applied to this document:

<?xml version="1.0" encoding="ISO-8859-1"?>
<doc>
<h1>Just having fun</h1>with all the
<div class="img">
  <img src="cat1.jpg" alt="my cat" width="200" height="200"/>
  <img src="cat2.jpg" alt="my cat" width="200" height="200"/>
  <p class="cpt">my 2 cats</p>
</div>
cats here:
<h1>Just fooling around</h1>
<div class="img">
  <img src="jamie_cat.jpg" alt="jamie's cat" width="167" height="106"/
>
  <p class="cpt">jamie's cat! Her blog is <a href="http://example.com/
jamie/">http://example.com/jamie/</a></p>
</div>
</doc>

would yield:

<?xml version="1.0"?>
<doc>
<h1>Just having fun</h1>with all the
<figure class="img">
  <img src="cat1.jpg" alt="my cat" width="200" height="200"/>
  <img src="cat2.jpg" alt="my cat" width="200" height="200"/>
  <figcaption>my 2 cats</figcaption>
</figure>
cats here:
<h1>Just fooling around</h1>
<figure class="img">
  <img src="jamie_cat.jpg" alt="jamie's cat" width="167" height="106"/
>
  <figcaption>jamie's cat! Her blog is http://example.com/jamie/</figcaption>
</figure>
</doc>

But well, as you don't have XML as input ... there really was no point
to my remark.

Best,
Stefan



More information about the Python-list mailing list