|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Translating roman numerals into integers with XSLT
You could try something like this -
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:num="http://whatever" version="2.0" >
<xsl:output method="text"/>
<xsl:variable name="max" select="10000" />
<xsl:template match="/">
<xsl:call-template name="RomanToInteger">
<xsl:with-param name="roman_number" select="'XXI'"
/>
</xsl:call-template>
</xsl:template>
<xsl:template name="RomanToInteger">
<xsl:param name="roman_number" />
<xsl:for-each select="1 to $max">
<xsl:if test="num:toRoman(.) = $roman_number">
<xsl:value-of select="." />
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:function name="num:toRoman" as="xs:string">
<xsl:param name="value" as="xs:integer"/>
<xsl:number value="$value" format="I"/>
</xsl:function>
</xsl:stylesheet>
The above XSL assumes, that there is some maximum
value of the number(in this example 10000).
I see this as an area of improvement..
Is there a way to break from xsl:for-each loop when
some condition is met?
here , xsl:if test="num:toRoman(.) = $roman_number"
Regards,
Mukul
--- Huditsch Roman <Roman.Huditsch@xxxxxxxxxxxxx>
wrote:
> Hi again,
>
> Sorry, for bothering you a second time today,
> but I was wondering if there is a more or less
> simple way
> of translating roman numerals into intergers with
> XSLT 2.0.
>
> Or do I have to use the standard method for doing
> this
> describes in the "XSLT Cookbook" by Sal Mangano?
>
> Would be nice if format-number() or anything similar
> would allow
> me to o this...
>
> Thank you very much for your patience.
>
> wbr,
> Roman
>
> _______________________________________
>
> Roman Huditsch
> IT and Electronic Publishing
> LexisNexis ARD Orac
> Marxergasse 25
> 1030 Vienna
> Austria
> ph: +43-1-534 52-1514
> f: +43-1-534 52-140
> e-mail roman.huditsch@xxxxxxxxxxxxx
> www.lexisnexis.at
>
>
> > -----Urspr|ngliche Nachricht-----
> > Von: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> > Gesendet: Montag, 20. Dezember 2004 15:20
> > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Betreff: RE: Omitting default namespace in
> the output - XSLT 2.0
> >
> > If you copy elements using xsl:copy-of, the output
> elements
> > will have the same names as the input elements,
> and the
> > system will automatically add declarations of the
> namespaces
> > used in these names. You want your output elements
> to have a
> > different name from the input elements (same local
> name,
> > different URI). So you can't use copy-of.
> >
> > To copy a tree while renaming elements, use a
> modified form
> > of the identity template rule:
> >
> > <xsl:template match="*">
> > <xsl:element name="{local-name()}">
> > <xsl:copy-of select="@*"/>
> > <xsl:apply-templates/>
> > </xsl:element>
> > </xsl:template>
> >
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
> > > -----Original Message-----
> > > From: Huditsch Roman
> [mailto:Roman.Huditsch@xxxxxxxxxxxxx]
> > > Sent: 20 December 2004 13:52
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: Omitting default namespace in the
> output - XSLT 2.0
> > >
> > > Hi,
> > >
> > > Given an example input like:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?> <norm
> > > xmlns="myDefaultNamespace">
> > > <table>
> > > <row>
> > > <cell>My Table</cell>
> > > </row>
> > > </table>
> > > </norm>
> > >
> > > I searched for an easy way to get output data,
> which is not
> > associated
> > > to my default namespace any more, with the help
> of <xsl:copy-of> in
> > > XSLT 2.0 I hoped that the attribute
> "copy-namespaces" set to "no"
> > > would help me here, but unfortunately I had no
> luck with Saxon 8.1.1
> > >
> > > My output still looks like
> > >
> > > <table>
> > > <row xmlns="myDefaultNamespace">
> > > <cell>My Table</cell>
> > > </row>
> > > </table>
> > >
> > >
> > > XSLT:
> > > =====
> > >
> > > <xsl:template match="ln:table">
> > > <table>
> > > <xsl:copy-of select="node() | @*"
> > > copy-namespaces="no"/>
> > > </table>
> > > </xsl:template>
> > >
> > >
> > > Thanks in advance for your input!
> > >
> > > wbr,
> > > Roman
> > > _______________________________________
> > >
> > > Roman Huditsch
> > > IT and Electronic Publishing
> > > LexisNexis ARD Orac
> > > Marxergasse 25
> > > 1030 Vienna
> > > Austria
> > > ph: +43-1-534 52-1514
> > > f: +43-1-534 52-140
> > > e-mail roman.huditsch@xxxxxxxxxxxxx
> > > www.lexisnexis.at
>
>
__________________________________
Do you Yahoo!?
All your favorites on one personal page Try My Yahoo!
http://my.yahoo.com
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








