Solved. Templates were being applied to a single line element hence it had
no siblings.
Fix was to change the scope of the xsl:variable so that it entailed
multiple line elements.
On Sat, Nov 1, 2014 at 6:19 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
> Yes and it works when i use Saxon 9.5 whatever against the XML snippet
> that I posted.
>
> Unfortunately for me that is not how the XML manifests, rather it is the
> product of some intermediate step and pipelined through a variable.
>
> i.e the XML you saw is actually the content of a variable (call it $line)
> which is the subject of an apply-templates as in <xsl:apply-templates
> select="$line"/> where $line contains the posted XML.
>
> Now that shouldn't make a difference but duplicates aren't being
> eliminated in this scenario.
>
> So the plot thickens.
>
> On Sat, Nov 1, 2014 at 5:56 PM, Martin Honnen martin.honnen@xxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> Ihe Onwuka ihe.onwuka@xxxxxxxxx wrote:
>>
>>>
>>>
>>> On Sat, Nov 1, 2014 at 5:26 PM, Martin Honnen martin.honnen@xxxxxx
>>> <mailto:martin.honnen@xxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
>>> <mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>>>
>>
>> Use the "=" operator and all preceding sibling line elements:
>>>
>>> <xsl:template match="line[title[1] =
>>> preceding-sibling::line/title[__1]]"/>
>>> <xsl:template match="line">
>>> <xsl:apply-templates select="title[1]"/>
>>> </xsl:template>
>>> --~--
>>>
>>>
>>> One of the variations I had tried before. It does not work.
>>>
>>
>> When I use Saxon 6.5.5 against your posted input sample and the stylesheet
>>
>> <xsl:stylesheet
>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>> version="1.0">
>>
>> <xsl:template match="line[title[1] = preceding-sibling::line/title[
>> 1]]"/>
>>
>> <xsl:template match="line">
>> <xsl:apply-templates select="title[1]"/>
>> </xsl:template>
>>
>> </xsl:stylesheet>
>>
>> I get the output
>>
>> <?xml version="1.0" encoding="utf-8"?>
>> La foto
>> La C:ltima parada (Lo peor de todo)
>> Polvo Eres
>> "7 dC-as al desnudo"
>>
>> "7 vidas"
>>
>>
>> which looks fine to me as for eliminating the duplicates.
|