Avatar billede brynil Nybegynder
28. august 2010 - 16:10 Der er 5 kommentarer og
1 løsning

for-each - udelade og ignorere

Det er temmelig længe siden jeg har rodet med XSLT, så jeg er blevet noget rusten.

Håber nogen har lyst til at hjælpe.

Jeg har en xml-fil som er opbygget omtrent som dette:

<root>
    <main>
        <indledning></indledning>

        <kap id="1">
            <element1></element1>
            <element3></element3>
        </kap>
        <kap2 id="2">
            <element1></element1>
            <element2></element2>
            <element3_a></element3_a>
        </kap2>
        <kap3 id="3">
            <element1></element1>
            <element2></element2>
            <element3></element3>
        </kap3>
        <kap4 id="4">
            <element1></element1>
            <element2></element2>
            <element3_a></element3_a>
        </kap4>

        .........

    </main>
</root>

Ikke særlig indviklet. men der er nogle forskelle - element3_a - som jeg ønsker at behandle som - element3.

Samtidig vil jeg gerne have, at hvis der ingen værdier er i en <kap>, så ignoreres gennemløbet, så der ikke genereres tekst (incl. html koder)

Kan sådanne betingelser placeres i en for-each som behandler <kap>'erne ?
Avatar billede brynil Nybegynder
28. august 2010 - 16:12 #1
Hovsa - en væsentlig ændring

De hedder alle <kap> og identificeres alene på id'et.
Avatar billede brynil Nybegynder
28. august 2010 - 17:58 #2
Og det er syntax og metoder jeg er interesseret i - ikke koden :)
Avatar billede brynil Nybegynder
28. august 2010 - 18:45 #3
Fandt en løsning på det ene spørgsmål:

<xsl:value-of select="*[starts-with(name(),'element3')]"/>

Så finder jeg nok også selv svaret på det sidste!
Avatar billede jokkejensen Novice
03. september 2010 - 18:43 #4
psuedo til at løse :


<foreach select="//Kap[element]">
  <foreach select="node()[contains(name(), 'element')]">
    //kode
</foreach>
</foreach>
Avatar billede jokkejensen Novice
03. september 2010 - 18:48 #5
//Kap[count(*) &gt; 0]

/J
Avatar billede brynil Nybegynder
11. september 2010 - 14:29 #6
Tak for det jokkejensen.

Er desværre nødt til at prioritere opgaven lidt væk.

Hvis du er interesseret i points, så opretter jeg gerne et spm. :)
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