Hi,
I'm not experienced at all with XSLT and I've got one question relative
to a <xsl:if test... > element which tests whether the element is a
duplicate or not. Looking at my output you could get an idea of what
I've managed to do:
<?xml version="1.0" encoding="UTF-8"?>
<martif type="TBX" xml:lang="en">
<martifHeader>
<fileDesc>
<sourceDesc>
<p/>
</sourceDesc>
</fileDesc>
</martifHeader>
<text>
<body>
<termEntry id="2107">
<langSet lang="spa-es">
<ntig>
<termGrp>
<term>Calibración</term>
<termNote type="termType">full form</termNote>
<termNote type="TS_CreateId">Alexandra
Mützel</termNote>
<termNote type="TS_UpdateId">Alexandra
Mützel</termNote>
<date type="origination">20070420T093242Z</date>
<date type="modification">20070420T093242Z</date>
<term>Calibramiento</term>
<termNote type="termType">full form</termNote>
<termNote type="TS_CreateId">Alexandra
Mützel</termNote>
<termNote type="TS_UpdateId">Alexandra
Mützel</termNote>
<date type="origination">20070420T093242Z</date>
<date type="modification">20070420T093242Z</date>
</termGrp>
</ntig>
</langSet>
</termEntry>
<termEntry id="5383">
<langSet lang="spa-es">
<ntig>
<termGrp/>
</ntig>
</langSet>
</termEntry>
</body>
</text>
</martif>
Within the <termGrp> element, the xsl:if tests whether it is the first
time that the content of the tag <element> is processed or not. If it's
the first one, it outputs the whole contents of the <termGrp> element,
as in the termEntry 2107. Else, it doesn't output them (like in entry
5383). I think I'm using what is called Muenchian method. So far so good.
This would be good enough for me but I need to do something else, which
is: if the term is not new (i.e. it has been processed and output
before), I would like the whole entry to not appear in the oupput,
meaning that the part in red shouldn't exist in my output. I can do this
with some postediting of my output but I thought that, if possible, it
would ideal to do it also with the same xsl template. Do you know how to
do this?
This is my code, in case you want to check, and my input data (sorry for
making the email so long):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="spa-term"
match="text/body/termEntry/langSet[(_at_)lang='spa-es']/ntig/termGrp/term"
use="."/>
<xsl:template match="/">
<martif type="TBX" xml:lang="en">
<martifHeader>
<fileDesc>
<sourceDesc>
<p></p>
</sourceDesc>
</fileDesc>
</martifHeader>
<text>
<body>
<xsl:for-each select="martif/text/body/termEntry">
<termEntry>
<xsl:attribute name="id">
<xsl:value-of select="@id"/>
</xsl:attribute>
<!-- <xsl:value-of select="current()"/> -->
<langSet lang="spa-es"><ntig><termGrp>
<xsl:for-each
select="langSet[(_at_)lang='spa-es']/ntig/termGrp/term">
<xsl:if test="generate-id(.) =
generate-id(key('spa-term',
.)[1]) ">
<term>
<xsl:value-of select="." />
</term>
<xsl:for-each select="../termNote">
<termNote>
<xsl:attribute name="type">
<xsl:value-of
select="@type"/>
</xsl:attribute>
<xsl:value-of
select="current()"/>
</termNote>
</xsl:for-each>
<xsl:for-each select="../date">
<date>
<xsl:attribute name="type">
<xsl:value-of
select="@type"/>
</xsl:attribute>
<xsl:value-of
select="current()"/>
</date>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</termGrp></ntig></langSet>
</termEntry>
</xsl:for-each>
</body>
</text>
</martif>
</xsl:template>
</xsl:stylesheet>
__DATA:
<?xml version='1.0' encoding='UTF-8'?>
<martif type="Part2v1" lang="en">
<martifHeader>
<fileDesc>
<titleStmt>
<title>Transit XV TermStar export file</title>
</titleStmt>
<publicationStmt>
<p/>
</publicationStmt>
<sourceDesc>
<p>TermStar dictionary</p>
</sourceDesc>
</fileDesc>
<encodingDesc>
<p type="DatCatSetName">maxi-set</p>
<p type="DatCatSetVersion">1</p>
</encodingDesc>
<revisionDesc>
<change>
<p>20090203T115345Z</p>
</change>
</revisionDesc>
<databaseDesc>
<p type="TS_DictName">Leica_LAS-SW_DEU_REF</p>
<p type="TS_DataBase">Leica</p>
<p type="TS_DictImagePath" mode="AbsolutePaths"/>
<p type="TS_DictProperty" id="ExportedLangs" val="0">DEU,ESP</p>
<p type="TS_DictProperty" id="ExtractedDataBase"
val="0">Leica_LAS_2007</p>
<p type="TS_DictProperty" id="ExtractedDictName"
val="0">Software_LAS_new</p>
<p type="TS_DictProperty" id="ExtractTime"
val="0">20080407T163925Z</p>
<p type="TS_DictProperty" id="GUID"
val="0">{83666734-317B-4E46-B445-6E9901523869}</p>
<p type="TS_DictProperty" id="MainLang" val="0">deu-de</p>
<p type="TS_DictProperty" id="OriginalDatabaseGUID" val="0"
>{FBADCF63-B2A3-492F-9B32-B330A0D12477}</p>
</databaseDesc>
</martifHeader>
<text>
<body>
<termEntry id='2107'>
<note type='TS_Subject'>Terminologie</note>
<note type='TS_CreateId'>Alexandra Mützel</note>
<date type='origination'>20070420T093242Z</date>
<note type='TS_UpdateId'>Alexandra Mützel</note>
<date type='modification'>20070420T093242Z</date>
<langSet lang='deu-de'>
<ntig><termGrp>
<term>Kalibrierung</term>
<termNote type='termType'>full form</termNote>
<termNote type='TS_CreateId'>Alexandra
Mützel</termNote>
<date type='origination'>20070420T093242Z</date>
<termNote type='TS_UpdateId'>Alexandra
Mützel</termNote>
<date type='modification'>20070420T093242Z</date>
</termGrp></ntig>
</langSet>
<langSet lang='spa-es'>
<ntig><termGrp>
<term>Calibración</term>
<termNote type='termType'>full form</termNote>
<termNote type='TS_CreateId'>Alexandra
Mützel</termNote>
<date type='origination'>20070420T093242Z</date>
<termNote type='TS_UpdateId'>Alexandra
Mützel</termNote>
<date type='modification'>20070420T093242Z</date>
</termGrp></ntig>
<ntig><termGrp>
<term>Calibramiento</term>
<termNote type='termType'>full form</termNote>
<termNote type='TS_CreateId'>Alexandra
Mützel</termNote>
<date type='origination'>20070420T093242Z</date>
<termNote type='TS_UpdateId'>Alexandra
Mützel</termNote>
<date type='modification'>20070420T093242Z</date>
</termGrp></ntig>
</langSet>
</termEntry>
<termEntry id='5383'>
<note type='TS_Subject'>FW4000</note>
<note type='TS_CreateId'>Gerald Dennett</note>
<date type='origination'>20040319T092948Z</date>
<note type='TS_UpdateId'>susanne</note>
<date type='modification'>20040320T224024Z</date>
<langSet lang='eng-gb'>
<ntig><termGrp>
<term>Calibration</term>
<termNote type='termType'>full form</termNote>
<termNote type='TS_CreateId'>Gerald
Dennett</termNote>
<date type='origination'>20040319T092948Z</date>
<termNote type='TS_UpdateId'>susanne</termNote>
<date type='modification'>20081117T123010Z</date>
<termNote
type='TS_PartOfSpeech'>lblCalibration</termNote>
<descrip
type='context'>Rainbow_frmEnterItems</descrip>
<termNote type='TS_Source'>September 2003</termNote>
</termGrp></ntig>
</langSet>
<langSet lang='spa-es'>
<ntig><termGrp>
<term>Calibración</term>
<termNote type='termType'>full form</termNote>
<termNote type='TS_CreateId'>Gerald
Dennett</termNote>
<date type='origination'>20040319T092948Z</date>
<termNote type='TS_UpdateId'>susanne</termNote>
<date type='modification'>20081117T123010Z</date>
<termNote
type='TS_PartOfSpeech'>lblCalibration</termNote>
<descrip
type='context'>Rainbow_frmEnterItems</descrip>
<termNote type='TS_Source'>September 2003</termNote>
</termGrp></ntig>
</langSet>
</termEntry>
</body>
</text>
</martif>
Thank you so much for your potential help and your attention.
Best regards,
--
Manuel Souto Pico
Terminólogo / Responsable de servicio técnico
STAR Servicios Lingüísticos, SL
C. Sardenya, 195-197 (baixos)
E-08013 Barcelona
Tel. +34 932 440 881
Fax: +34 932 471 273
manuel(_dot_)souto(_at_)star-group(_dot_)net
http://www.star-spain.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>
--~--