xsl-list
[Top] [All Lists]

[xsl] Parsing complex line (mixed text and markup)

2008-02-19 13:51:13
Hello,

I have a problem to handle entities using advised solution :

The modified xsl template can be found here : http://pastebin.com/f1034d9b0
(I don't know what is the list policy about long examples so i posted
it on the web. They state that post will be saved forever, so it will
be good for future use as well).

<tblrow>&j_cdc_spec_ref;,,&j_cdc_spec_name;,,&j_url;</tblrow>

j_cdc_spec_ref and j_cdc_spec_name is a simple text replacement and
handled correctly. But the last one :

j_url is : <!ENTITY j_url          "<ulink url=http://www.jungo.com/>">

and just does not produce any output, i.e 2 entries created instead of 3.

So 2 questions:

First  question.
 My decision was to handle every piece of reusable code in 2 ways :
1) Entities for static reusable code (#defines)
2) Named parameter templates for dynamic reusable code  (functions)

As i come from C language background and thinking "C" I'm not sure
that i doing the right thing at all.
 The question is: What is the correct approach for code/definition
reuse in xsl ?

Just a side note the solution must be very simple and short in the xml
part and can be complex and long at the xsl side. (xsl is a one time
work, xml syntax will be massively used).

Second question:
How to handle correctly the entities in my case ?  Even in case i use
the wrong approach i would like to understand what is the solution for
the problem.

Thanks for any suggestion,
Ilya.




On Feb 15, 2008 1:56 AM, Ilya Lifshits <chehlo(_at_)gmail(_dot_)com> wrote:

Working exactly as i expected.
Thanks for the fix i was trying to find a way how to remove it before
i ask :) Like i sad I'm completely newbie.

Comma probably not a best delimiter, i will replace it with some
sequence, but the main idea is clear and working.
Regards Ilya.




On Fri, Feb 15, 2008 at 1:48 AM, Michael Kay <mike(_at_)saxonica(_dot_)com> 
wrote:
Then (at [G] above) process the new tbentry using grouping
 >
 >   <xsl:for-each-group select="$temp/child::node()"
 > group-starting-with="comma">
 >     <entry><xsl:copy-of select="current-group()"/></entry>
 >   <xsl:for-each-group>
 >
 > Not tested!

 One bug I spotted on re-reading: it doesn't remove the <comma/> elements.
 Change the copy-of to:

 <entry><xsl:copy-of select="current-group()[not(self::comma)]"/></entry>


 > Michael Kay
 > http://www.saxonica.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>
--~--

<Prev in Thread] Current Thread [Next in Thread>