Ooops ... change "h1" to "head" in my discussion paragraph and match.
But more importantly, George's solution (just posted -- match
head/anchor and head/pb and ignore them) seems more elegant than
mine.
Nonetheless, just to get it recorded properly:
---------
(524) Plod-2 /tmp @ 04:02:06 ->cat Untitled2.xml # INPUT FILE
<?xml version="1.0" encoding="UTF-8"?>
<duck>
<head>O<sCap>FFICERS</sCap> of <person>the</person>
R<sCap>EGIMENT</sCap> of I<sCap>NFANTRY</sCap><anchor id="J"
>anchor</anchor><pb n="2">2</pb>
</head>
<anchor id="c">anchor1</anchor>
</duck>
(525) Plod-2 /tmp @ 04:02:07 ->cat Untitled1.xsl # XSLT FILE
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- match root, process its children -->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<!-- identity transform of anything not otherwise matched below -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- process <head> specially: ignore child <anchor> or <pb> -->
<xsl:template match="head">
<xsl:element name="h1">
<xsl:apply-templates
select="@*
|*[not(name(.)='anchor' or name(.)='pb')]
|text()
|comment()
|processing-instruction()"
/>
</xsl:element>
</xsl:template>
<!-- phrase-level elements become <span> -->
<xsl:template match="sCap|person">
<xsl:element name="span">
<xsl:attribute name="class"><xsl:value-of
select="name(.)"/></xsl:attribute>
<xsl:apply-templates/> <!-- presume input has no span= attribute -->
</xsl:element>
</xsl:template>
<!-- <anchor>s become <a>s -->
<xsl:template match="anchor">
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:apply-templates/> <!-- presume input has no id= attribute -->
</xsl:element>
</xsl:template>
</xsl:stylesheet>
(526) Plod-2 /tmp @ 04:02:08 ->xsltproc Untitled1.xsl Untitled2.xml # OUTPUT
<?xml version="1.0"?>
<duck>
<h1>O<span class="sCap">FFICERS</span> of <span class="person">the</span>
R<span class="sCap">EGIMENT</span> of I<span class="sCap">NFANTRY</span>
</h1>
<a name="c">anchor1</a>
</duck>
(527) Plod-2 /tmp @ 04:02:10 ->
---------
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--