Italian student working on XSLT... please help me!
Here should go questions about transforming XML with XSLT and FOP.
-
- Posts: 3
- Joined: Mon Feb 20, 2006 6:37 pm
Italian student working on XSLT... please help me!
hi y'll I'm an Italian student, (so pardon my bad English!)..I'm in a very hurry now, cos I gotta finish a project for a prof very soon, and I don't know how to do...
I've almost done it, it's about "translate" some texts in TEI "lite", I've also almost done all the XSLT's but I just have one last problem.. here down you can see what I need
that's the code I made with XML-TEI "Lite"
it's something like Italian poetry.. so you know what I mean, verses, line numbers and so on..
...
<lg>
<l>Ripiene, accompagnate, e copiose,</l>
<l>Gloria de l'età d'oro; degne certo</l>
<l>Che la città vi invidii, poiché in quella</l>
<l>Non è quiete vera, non è vita,</l>
<l>Ma agitata di cure, e d'onor lievi,</l>
<num>10</num>
<l>Una bulla di vento, ove che giova</l>
<l>Viver, né poi saper come si vive?</l>
<l>Molti che son famosi e noti al mondo</l>
<l>Morono in fine a sé medesmi ignoti,</l>
<l>E sol resta di fama un roco suono.</l>
<num>15</num>
<l>In questi, non orror, ma lieti aspetti</l>
<l>Di boscareccie fronde non perviene</l>
</lg>
my very problem is that I don't know how to make an XSLT in order to make the number in the "<num>" tag stay in the same line of the previous "<l>" tag..
I mean, something like this.. (next you can see the visualization I need to have)
Ripiene, accompagnate, e copiose,
Gloria de l'età d'oro; degne certo
Che la città vi invidii, poiché in quella
Non è quiete vera, non è vita,
Ma agitata di cure, e d'onor____________________10
Una bulla di vento, ove che giova
Viver, né poi saper come si vive?
Molti che son famosi e noti al mondo
Morono in fine a sé medesmi ignoti,
E sol resta di fama un roco suono.______________15
In questi, non orror, ma lieti aspetti
Di boscareccie fronde non perviene
Romor di fiera tromba, o d'armi scosse,
Non è di sangue uman bagnato il suolo,
Non si sentono qui discordie o liti,_______________20
please.. help me.. it will make me the happiest guy if you can help me finish all this stuff!!
I've almost done it, it's about "translate" some texts in TEI "lite", I've also almost done all the XSLT's but I just have one last problem.. here down you can see what I need
that's the code I made with XML-TEI "Lite"
it's something like Italian poetry.. so you know what I mean, verses, line numbers and so on..
...
<lg>
<l>Ripiene, accompagnate, e copiose,</l>
<l>Gloria de l'età d'oro; degne certo</l>
<l>Che la città vi invidii, poiché in quella</l>
<l>Non è quiete vera, non è vita,</l>
<l>Ma agitata di cure, e d'onor lievi,</l>
<num>10</num>
<l>Una bulla di vento, ove che giova</l>
<l>Viver, né poi saper come si vive?</l>
<l>Molti che son famosi e noti al mondo</l>
<l>Morono in fine a sé medesmi ignoti,</l>
<l>E sol resta di fama un roco suono.</l>
<num>15</num>
<l>In questi, non orror, ma lieti aspetti</l>
<l>Di boscareccie fronde non perviene</l>
</lg>
my very problem is that I don't know how to make an XSLT in order to make the number in the "<num>" tag stay in the same line of the previous "<l>" tag..
I mean, something like this.. (next you can see the visualization I need to have)
Ripiene, accompagnate, e copiose,
Gloria de l'età d'oro; degne certo
Che la città vi invidii, poiché in quella
Non è quiete vera, non è vita,
Ma agitata di cure, e d'onor____________________10
Una bulla di vento, ove che giova
Viver, né poi saper come si vive?
Molti che son famosi e noti al mondo
Morono in fine a sé medesmi ignoti,
E sol resta di fama un roco suono.______________15
In questi, non orror, ma lieti aspetti
Di boscareccie fronde non perviene
Romor di fiera tromba, o d'armi scosse,
Non è di sangue uman bagnato il suolo,
Non si sentono qui discordie o liti,_______________20
please.. help me.. it will make me the happiest guy if you can help me finish all this stuff!!
-
- Site Admin
- Posts: 2095
- Joined: Thu Jan 09, 2003 2:58 pm
Hi,
On a document like
the following stylesheet
will give you
Best Regards,
George
On a document like
Code: Select all
<lg>
<l>Ripiene, accompagnate, e copiose,</l>
<l>Gloria de l'età d'oro; degne certo</l>
<l>Che la città vi invidii, poiché in quella</l>
<l>Non è quiete vera, non è vita,</l>
<l>Ma agitata di cure, e d'onor lievi,</l>
<num>10</num>
<l>Una bulla di vento, ove che giova</l>
<l>Viver, né poi saper come si vive?</l>
<l>Molti che son famosi e noti al mondo</l>
<l>Morono in fine a sé medesmi ignoti,</l>
<l>E sol resta di fama un roco suono.</l>
<num>15</num>
<l>In questi, non orror, ma lieti aspetti</l>
<l>Di boscareccie fronde non perviene</l>
</lg>
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="lg">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="l">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="l[following-sibling::*[1][self::num]]" priority="5">
<xsl:variable name="spaces" select="80 - string-length(.) - string-length(following-sibling::*[1])"/>
<xsl:value-of select="."/>
<xsl:call-template name="printSpaces">
<xsl:with-param name="count" select="$spaces"/>
</xsl:call-template>
<xsl:value-of select="following-sibling::*[1]"/>
</xsl:template>
<xsl:template name="printSpaces">
<xsl:param name="count" select="0"/>
<xsl:if test="$count>0">
<xsl:text> </xsl:text>
<xsl:call-template name="printSpaces">
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template match="*"/>
</xsl:stylesheet>
Code: Select all
1--------10--------20--------30--------40--------50--------60--------70--------80--
Ripiene, accompagnate, e copiose,
Gloria de l'età d'oro; degne certo
Che la città vi invidii, poiché in quella
Non è quiete vera, non è vita,
Ma agitata di cure, e d'onor lievi, 10
Una bulla di vento, ove che giova
Viver, né poi saper come si vive?
Molti che son famosi e noti al mondo
Morono in fine a sé medesmi ignoti,
E sol resta di fama un roco suono. 15
In questi, non orror, ma lieti aspetti
Di boscareccie fronde non perviene
Best Regards,
George
-
- Posts: 3
- Joined: Mon Feb 20, 2006 6:37 pm
mmh.. thank you! anyway, that's not what exactly i was looking for.. anyway, maybe now i can be more specific..
as you can see the tag <lg> is the father of the different tags <l> and <num>
there are 2 different <l> tags ---> <l> and <l type="capoverso"> and a <num> tag
i tried with xslt but i can't have what i want to..
the following is the code i will like to have in html after xslt stylesheet..
i think i should do something in xslt with if or whatevere else... please, help me!
Ciao!
Code: Select all
<lg>
<l type "capoverso">Ripiene, accompagnate, e copiose,</l>
<l>Gloria de l'età d'oro; degne certo</l>
<l>Che la città vi invidii, poiché in quella</l>
<l>Non è quiete vera, non è vita,</l>
<l>Ma agitata di cure, e d'onor lievi,</l>
<num>10</num>
<l>Una bulla di vento, ove che giova</l>
<l>Viver, né poi saper come si vive?</l>
<l type="capoverso">Molti che son famosi e noti al mondo</l>
<l>Morono in fine a sé medesmi ignoti,</l>
<l>E sol resta di fama un roco suono.</l>
<num>15</num>
<l>In questi, non orror, ma lieti aspetti</l>
<l>Di boscareccie fronde non perviene</l>
</lg>
there are 2 different <l> tags ---> <l> and <l type="capoverso"> and a <num> tag
i tried with xslt but i can't have what i want to..
the following is the code i will like to have in html after xslt stylesheet..
Code: Select all
<div class="sp">
<div style="...">Ripiene, accompagnate, e copiose,</div>
<div style="...">Gloria de l'età d'oro; degne certo</div>
<div style="...">Che la città vi invidii, poiché in quella</div>
...
..
<div style="...">10</div>
<div style="...">Una bulla di vento, ove che giova</div>
<div style="...">Viver, né poi saper come si vive?</div>
..
..
..
<div style="...">15</div>
<div style="...">In questi, non orror, ma lieti aspetti</div>
<div style="...">Di boscareccie fronde non perviene</div>
</div>
Ciao!
-
- Site Admin
- Posts: 2095
- Joined: Thu Jan 09, 2003 2:58 pm
Hi,
In that case the solution is simpler:
Note the choose used to specify the value of the class attribute for l elements.
In XSLT 2.0 that will be:
Best Regards,
George
In that case the solution is simpler:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/lg">
<div class="sp">
<xsl:apply-templates />
</div>
</xsl:template>
<xsl:template match="l|num">
<div>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="@type"><xsl:value-of select="@type"/></xsl:when>
<xsl:otherwise><xsl:value-of select="name()"/></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="."/>
</div>
</xsl:template>
</xsl:stylesheet>
In XSLT 2.0 that will be:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/lg">
<div class="sp"><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="l|num">
<div class="{if (@type) then @type else name()}">
<xsl:value-of select="." />
</div>
</xsl:template>
</xsl:stylesheet>
George
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service