Avatar billede phonbox Nybegynder
17. februar 2011 - 12:59 Der er 2 kommentarer

problem med xslt/xpath

Hejsa har et mindre problem med xpath/xslt (version 1).

<sektion value="hovedsektion">
    <overskrift value="Lene"/>
    <element value=""/>
    <element value=""/>
    <element value=""/>
    <overskrift value="Gitte"/>
    <element value="a"/>
    <element value="b"/>
    <element value="c"/>
    <element value="d"/>
</sektion>

Ovenstående er et lille del af et xml dokument der skal transformeres til andet xml format. xslt reglen der skal implementeres kan defineres som følgende
1. hvis overskrift elementet har en @value != '' og alle efterfølgende søskende elementer af typen element frem til næste overskrift element har en value != '' skal overskrift udskrives.
Dvs. i ovenstående eksempel skal overskrift elementet med attributten value="Lene" ikke udskrives da alle elementer frem til næste overskrift element ikke indeholder en værdi. Jeg har brug for en regel der kan håndtere denne situation.
Havde oprindeligt en regel som nedenstående. Men denne kan ikke anvendes til ovenstående situation. Jeg kan som udgangspunkt ikke vide hvor mange elementer xml dokumentet indeholder !

<xsl:template match="overskrift">
<xsl:if test="@value!='' and following-sibling::element/@value != ''">
      Gør et eller andet

</xsl:template>
Avatar billede mireigi Novice
20. marts 2012 - 00:01 #1
Prøv med dette:

<xsl:template match="overskrift">
<xsl:if test="@value!='' and count(element[@value != '']) = count(element) ">
      Gør et eller andet

</xsl:template>


Ovenstående er utestet, men bør virke.
Avatar billede mireigi Novice
20. marts 2012 - 00:03 #2
En kortere version:
<xsl:template match="overskrift">
<xsl:if test="@value!='' and count(element[@value = '']) = 0">
      Gør et eller andet

</xsl:template>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester