This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

paragraph style problem


I am trying to write stylesheet to output html based on xml file which looks
like the below for paragraph bulleting and indenting

<?xml version="1.0"?>
<testParagraph >
<columnText>
<paragraph style="Normal" leftIndent="18" listType="wdListBullet"
listLevelNumber="1" listString="?" listValue="1" listNumber="1">first
wdbulleted(UL) para</paragraph>
<paragraph style="Normal" leftIndent="18" listType="wdListBullet"
listLevelNumber="1" listString="?" listValue="2" listNumber="1">second
bulleted(UL) para</paragraph>
<paragraph style="Normal" leftIndent="18" listType="wdListBullet"
listLevelNumber="2" listString="?" listValue="1" listNumber="1">first
buleted(UL) para in second level</paragraph>
<paragraph style="Normal" leftIndent="18" listType="wdOutlineNumbering"
listLevelNumber="1" listString="1." listValue="1" listNumber="1">first
buleted(OL) para in first level</paragraph>
<paragraph style="Normal" leftIndent="18" listType="wdOutlineNumbering"
listLevelNumber="1" listString="2." listValue="2" listNumber="1">first
buleted(OL) para in first level</paragraph>
</columnText>
 </testParagraph>

where the attribute 'listType' value is whether <UL>(wdListBullet) or
<OL>(outlineNumbered) and
attribute 'listLevelNumber' tells about how deep your UL or OL is and
attribute 'listString' can be ignored for <UL>'s but for <OL> it could be 1.
or a. etc.

I was trying to solve looking at following::siblings and preceding::siblings
listValues,listStrings and listLevelNumbers, but failing to recursively
traverse the entire columnText and if try to solve the recursive traverse
the UL's and OL's are messing up.

any ideas??????????????

Ravi





----- Original Message -----
From: mohamed <mohamed@b-bop.com>
To: <xsl-list@mulberrytech.com>
Sent: Wednesday, February 02, 2000 3:41 PM
Subject: Re: Fw:


> Thanks Steve, I like your solution a lot but for some reason it's giving
me
> a
> java.net.MalformedURLException: :
java.lang.StringIndexOutOfBoundsException:
> String index out of range: 0
>
> at this line
> >       <xsl:element name="{document('')/*/xsl:template[@name='attr-map']
> >                           /map[@attr=name($attr-set[1])]/@elem}">
>
> any ideas?
>
> ----- Original Message -----
> From: Steve Tinney <stinney@sas.upenn.edu>
> To: <xsl-list@mulberrytech.com>
> Sent: Tuesday, February 01, 2000 9:31 PM
> Subject: Re: Fw:
>
>
> > > mohamed wrote:
> > >
> > > I'm trying to call templates based on attribute names:
> > >
> > > <?xml version="1.0"?>
> > >  <testText >
> > >      <text bold="yes">WITH BOLD</text>
> > >      <text bold="yes" italic="yes"> WITH BOLD AND ITALIC</text>
> > >  </testText>
> > > so I declared templates that are called and match bold and italics,
> > >
> > >  <xsl:template match="bold" name="bold">
> > >   <b>
> > >     <xsl:apply-templates/>
> > > </b>
> > > </xsl:template>
> > >
> > > <xsl:template match="italics" name="italics">
> > >   <i>
> > >     <xsl:apply-templates/>
> > > </i>
> > > </xsl:template>
> > >
> > > and I want to get an output as follows:
> > > <b>WITH BOLD</b>
> > > <b><i>WITH BOLD AND ITALIC</i></b>
> >
> > Here is a version which marries recursion and an in-sheet map of
> > attribute names to element names to produce something which is a bit
> > funky to read, but very easy to maintain if you have a 1:1 correlation
> > of attribute names to elements---you just add entries to the map.
> >
> >  Steve
> >
> > <xsl:stylesheet version="1.0"
> >   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >
> > <xsl:output method="html" indent="yes"/>
> >
> > <xsl:template name="attr-map">
> >   <map attr="bold"   elem="b"/>
> >   <map attr="italic" elem="i"/>
> > </xsl:template>
> >
> > <xsl:template match="/">
> >   <xsl:apply-templates/>
> > </xsl:template>
> >
> > <xsl:template match="testText/text">
> >   <xsl:call-template name="format-by-attribute"/>
> > </xsl:template>
> >
> > <xsl:template name="format-by-attribute">
> >   <xsl:param name="attr-set" select="@*[.='yes']"/>
> >   <xsl:variable name="nattr" select="count($attr-set)"/>
> >   <xsl:choose>
> >     <xsl:when test="$nattr = 0">
> >       <xsl:apply-templates/>
> >     </xsl:when>
> >     <xsl:otherwise>
> >       <xsl:element name="{document('')/*/xsl:template[@name='attr-map']
> >                           /map[@attr=name($attr-set[1])]/@elem}">
> >         <xsl:choose>
> >           <xsl:when test="$nattr = 1">
> >             <xsl:apply-templates/>
> >           </xsl:when>
> >           <xsl:otherwise>
> >             <xsl:call-template name="format-by-attribute">
> >               <xsl:with-param name="attr-set"
> >                select="$attr-set[position()>1]"/>
> >             </xsl:call-template>
> >           </xsl:otherwise>
> >         </xsl:choose>
> >       </xsl:element>
> >     </xsl:otherwise>
> >   </xsl:choose>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]