Avatar billede hrc Mester
11. november 2005 - 13:18 Der er 1 kommentar og
1 løsning

Opslag og position() på samme tid

I forbindelse med at konvertere en docbook-tabel til xhtm skal jeg hente nogle oplysninger fra et andet context end hvor jeg står.

Jeg har brug for at lave et opslag i en række <colspec> elementer efter en colname-attribut. Når den er fundet skal jeg have positionen. Hvis colnum findes skal den overstyre positionen.

Tabellen ser sådan ud:

<table>
  <title/>
  <colspec colname="c1" />
  <colspec colname="c2" />
  <colspec colname="c3" />
  <colspec colnum="5" colname="c5" />
  <spanspec spanname="hspan" namest="c2" nameend="c3" />

  <tgroup>
    <tbody>
      <row>
        <entry spanname="hspan">Hello world</entry>
      </row>
    </tbody>
  </tgroup>
</table>

Opgaven er følgende:
1. Har den en spanname attribut? Jep, det har den
2. Lav opslag i spanspec og find start- og slut-kolonnenavne.
3. Find position på colspec'erne hvor navnene passer, her hhv. 'c2' og 'c3'.
4. Find differencen: span = slutposition - startposition + 1
5. Lav en <td colspan="$span">

Jeg har problemer med syntaksen og dette er nærmest pseudo-kode:

<xsl:variable name="colstart" select="../../../colspec[name='@{$colstartname}']position()"/>
Avatar billede hrc Mester
11. november 2005 - 13:22 #1
I øvrigt:

Jeg står i entry-templaten og har låst schemaet fast på, at colspec'erne kommer efter den optionelle title.
Avatar billede hrc Mester
02. januar 2006 - 15:16 #2
Lukker igen
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