[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: Preserve ancestors/discard children


Subject: Re: Preserve ancestors/discard children
From: Steve Tinney <stinney@xxxxxxxxxxxxx>
Date: Sun, 19 Dec 1999 10:25:00 -0500

Here is a lightly tested solution along the lines in my previous post.
The test data you gave is too complex, incidentally, to tell exactly
what the parameters of your needs are.

Still, this XSL:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="*|@*|text()">
  <xsl:if test="not(name(.)='ul') or not(./li[@class='L'])">
    <xsl:copy>
      <xsl:apply-templates select="*|@*|text()"/>
    </xsl:copy>
  </xsl:if>
</xsl:template>

</xsl:stylesheet>

When applied to this XML:

<?xml version="1.0"?>
<html>
<body bgcolor="#ffffff">

<div class="Rgveda">
  <div1>
    <ul><li class="L">agni;m ILe puro;hitam</li>
        <li class="L">yajJa;sya deva;m Rtvi;jam /</li>
    </ul>
    <ul><li class="L">agni;m ILe puro;hitam</li>
        <li class="T">yajJa;sya deva;m Rtvi;jam /</li>
    </ul>
    <ul><li class="T">agni;m ILe puro;hitam</li>
        <li class="T">yajJa;sya deva;m Rtvi;jam /</li>
    </ul>
  </div1>
</div>
</body>
</html>

Emits only the third UL.  Perhaps that is what you want?

 Steve

-- 
----------------------------------------------------------------------
Steve Tinney                                        Babylonian Section
                                 *   University of Pennsylvania Museum
stinney@xxxxxxxxxxxxx                          Phila, PA. 215-898-4047


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread