OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A simple guy with a simple problem



Hi, its Bob again. I muttered along with
my assignment and made some progress but 
feel free to comment as it wasn't an easy
task.

#foo.dtd
<!ELEMENT foo (lit)*>
<!ELEMENT lit (#PCDATA)>
<!ATTLIST lit text CDATA "STUFF">

#foo.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
<!DOCTYPE foo SYSTEM "foo.dtd" [
<!ENTITY bar "This is entity STUFF and some more
STUFF.">
]>
<foo>
<lit text="hello">
<![CDATA[This is literal STUFF and some more STUFF.]]>
</lit>
<lit>
&bar;
</lit>
</foo>

#foo.xsl
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
 <xsl:template match="/">
  <xsl:variable name="content">
   <xsl:value-of select="."/>
  </xsl:variable>
  <xsl:call-template name="substitute">
   <xsl:with-param name="input" select="$content"/>
    <xsl:with-param name="from" select="'STUFF'"/>
    <xsl:with-param name="to" select="'stuff'"/>
  </xsl:call-template>
 </xsl:template>
 <xsl:template name="substitute">
  <xsl:param name="input"/>
   <xsl:param name="from"/>
   <xsl:param name="to"/>
   <!--
   calling substitute:<p/>
   input=<xsl:value-of select="$input"/><p/>
   from=<xsl:value-of select="$from"/><p/>
   to=<xsl:value-of select="$to"/><hr/>
  -->
  <xsl:variable name="front"
select="substring-before($input,$from)"/>
  <xsl:variable name="rear"
select="substring-after($input,$from)"/>
  <xsl:value-of select="concat($front,$to)"/>
  <xsl:choose>
   <xsl:when test="contains($rear,$from)">
    <xsl:call-template name="substitute">
     <xsl:with-param name="input" select="$rear"/>
     <xsl:with-param name="from" select="$from"/>
     <xsl:with-param name="to" select="$to"/>
    </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
    <xsl:value-of select="$rear"/>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>
</xsl:stylesheet>

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices.
http://auctions.yahoo.com/