That was only a typo here. Do you have any other ideas or suggestions
? please let em knwo
On 1/22/07, Mark Carlson <carlsonm(_at_)u(_dot_)washington(_dot_)edu> wrote:
For one, your <fo:inline> elements are not closed in the bottom 3
template rules.
ms wrote:
> Hello:
>
> I have tried to implement this solution but I dont
> know where I am going wrong. Here is my complete code:
>
> This template is used for formatting.
> <xsl:template name="lists">
> <xsl:param name="format"/>
> <fo:list-block>
> <fo:list-item>
> <fo:list-item-label>
> <xsl:choose>
> <xsl:when test="$format = '1'">
> <fo:block>
> <fo:inline>
> <xsl:number
format="1"/>.</fo:inline>
> </fo:block>
> </xsl:when>
> </xsl:choose>
> </fo:list-item-label>
> <fo:list-item-body start-indent="body-start()"
> end-indent="0pt">
> <fo:block>
> <xsl:apply-templates>
>
> </xsl:apply-templates>
> </fo:block>
> </fo:list-item-body>
> </fo:list-item>
> </fo:list-block>
> </xsl:template>
>
>
> This template calls the above template for formatting:
>
> <xsl:template match="r1">
> <xsl:if test="child::a">
> <xsl:apply-templates select="a" mode="t"/>
> </xsl:if>
>
> <xsl:call-template name="lists">
> <xsl:with-param
> name="format">1</xsl:with-param>
> </xsl:call-template>
> </xsl:template>
>
> This is the template for element a which is a child of
> <r1>.
>
> <xsl:template match="a" mode="t">
> <fo:block space-before="6pt">
> <fo:inline><xsl:value-of select="."/>
> </fo:block>
> </xsl:template>
>
> <xsl:template match="a">
> <fo:block space-before="6pt">
> <fo:inline><xsl:value-of select="."/>
> </fo:block>
> </xsl:template>
>
> <xsl:template match="text">
> <fo:block space-before="6pt">
> <fo:inline><xsl:apply-templates/>
> </fo:block>
> </xsl:template>
>
>
> And my Input is:
> <r1>
> <a>test</a>
> <a>test2</a>
> <text>test test</text>
> <a>test3</a>
> </r1>
>
> My desired output is:
>
> test
> test2
> 1. test test
> test3
>
>
> The reason for checking if <a> is a child of <r1> and
> applying the mode is so that this <a> appears above
> <r1> without getting formatted as 1. test
>
> So even though <r1> element is formatted to be 1., any
> <a> element which appear immediately after <r1> should
> not be formatted. If there is an <a> element after
> some other element like in this example <text>, then
> it should be displayed as it is in the document tree.
>
> Please let me know if this is clear and if there is a
> way to do it and if there is amistake in my code.
>
> --- ms <mina_hurray(_at_)yahoo(_dot_)com> wrote:
>
>> Hello:
>>
>> I did see the axis specifier thread on this list,
>> unfortunately it is not me, but I am facing a
>> similar
>> issue. I tried to implement the solutions given in
>> those, but I was not successful and thats te reason
>> for posting this issue.
>>
>>
>> --- Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
>>
>>> I assume you're the same person as xslt.new who
>>> posted "axis specifiers"
>>> last week (if not, it's a remarkable that you have
>>> exactly the same problem
>>> and the same misunderstandings).
>>>
>>> We need to go back a step. You haven't understood
>> a
>>> word of the explanations
>>> we gave you last week. Giving you the same
>>> explanations again isn't going to
>>> do much good. I'm really trying hard to read your
>>> postings and work out
>>> which step in the learning process you've got
>> stuck
>>> on, but I'm struggling.
>>>
>>> The normal way of processing an XML document is to
>>> work top-down. First, you
>>> have to think of the document as a tree, with the
>>> root at the top (strange
>>> in botany, but not in computing). The document
>> node
>>> itself is at the top,
>>> then the r1 element, and (a,a,b,a) are below the
>> r1
>>> element, at the next
>>> level down (I stress this because you talk of
>> test3
>>> as being "below" b,
>>> which means you're not yet thinking in tree
>> terms).
>>> So top down processing
>>> means you write a template rule for r1, which
>>> typically applies templates to
>>> each of its children. You then define template
>> rules
>>> for each kind of child.
>>>
>>> This works when the rules for an element are
>>> independent of where it appears
>>> relative to other elements at the same level. For
>>> example, if every a
>>> element is processed by converting the <a> tag to
>> a
>>> <p>, then you can write
>>> a template rule
>>>
>>> <xsl:template match="a">
>>> <p><xsl:apply-templates/></p>
>>> </xsl:template>
>>>
>>> Similarly, if every b is processed by outputting a
>>> <p> but with a sequence
>>> number attached, you can write
>>>
>>> <xsl:template match="b">
>>> <p><xsl:number/>: <xsl:apply-templates/></p>
>>> </xsl:template>
>>>
>>> Now, your input and your processing seems to
>> follow
>>> this conventional style.
>>> As far as we can see, you've got a perfectly
>>> straightforward easy
>>> transformation to do here that yields to the basic
>>> techniques in chapter 1
>>> of any textbook, and we can't see why you're
>> making
>>> it so difficult.
>>>
>>> Michael Kay
>>> http://www.saxonica.com/
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: ms [mailto:mina_hurray(_at_)yahoo(_dot_)com]
>>>> Sent: 19 January 2007 14:58
>>>> To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
>>>> Subject: [xsl] testing for position of an
>> element
>>> and
>>>> displaying it accordingly
>>>>
>>>> Hi all:
>>>>
>>>> My input XML looks like this;
>>>>
>>>> <r1>
>>>> <a>test</a>
>>>> <a>test2</a>
>>>> <b>test test</b>
>>>> <a>test3</a>
>>>> </r1>
>>>>
>>>> For this XML, I would like to write an XSLT
>> which
>>> basically
>>>> achieves the following:
>>>>
>>>> 1) For the <a> elements which are above the <b>
>>> element, they
>>>> should be displayed this way:
>>>>
>>>> Test
>>>> Test2
>>>> 1)test test
>>>>
>>>> 2) For the <a> element which appears after the
>> <b>
>>> element, I
>>>> want it displayed after the <b> element:
>>>>
>>>> Test
>>>> Test2
>>>> 1)test test
>>>> test3
>>>>
>>>> How can I achieve this in XSLT? I tried testing
>>> the
>>>> position, using position()=1. This works
>> obviously
>>> for the
>>>> first <a> element and fails for the second one.
>>>>
>>>> Please let me know if this is possible?
>>>>
>>>>
>>>>
>>>>
> ______________________________________________________________
>>>> ______________________
>>>> Do you Yahoo!?
>>>> Everyone is raving about the all-new Yahoo! Mail
>>> beta.
>>>> http://new.mail.yahoo.com
>>>>
>>>>
> --~------------------------------------------------------------------
>>>> 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>
>>>> --~--
>>>>
>>>
>>>
> --~------------------------------------------------------------------
>>> 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>
>>> --~--
>>>
>>>
>>
>>
>>
>>
>
____________________________________________________________________________________
>> Need a quick answer? Get one in minutes from people
>> who know.
>> Ask your question on www.Answers.yahoo.com
>>
>>
> --~------------------------------------------------------------------
>> 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>
>> --~--
>>
>>
>
>
>
>
>
____________________________________________________________________________________
> Yahoo! Music Unlimited
> Access over 1 million songs.
> http://music.yahoo.com/unlimited
>
> --~------------------------------------------------------------------
> 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>
> --~--
>
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--