[XSL] Hoe node voor hyperlink uit specifiek element halen?

Pagina: 1
Acties:

  • airliner
  • Registratie: Juni 2002
  • Laatst online: 26-03 11:55
Het probleem:
Ik moet een url uit een node van een child element halen. Dat is deels gelukt met behulp van het topic [XML&XSL] Aan het worstelen met XML, XSL en schema's, welke mij wees op het bestaan van: href="{@node}"
Ik moet alleen op een of andere manier aangegeven uit welk child element in mijn geval, en ik heb geen idee hoe ik dit moet doen.
.
Oorzaak:
dat ik dit niet gewoon met de volgende code kan doen
code:
1
2
3
<xsl:template match="beschrijving">
   <a href="{@url}"/><xsl:value-of select="." /></a>
</xsl:template>

komt doordat ik gebruik maak van het <xsl:for-each> element in mijn xsl bestand (bestand.xsl):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="a">

    <html>

      <head>
        <title><xsl:value-of select="content/title"/></title>
      </head>

      <body>

        <table>
        <xsl:for-each select="b/c">
        <xsl:sort select="nummer"/>
        <xsl:if test="nummer &gt; 0">
          <tr>
            <td><xsl:value-of select="nummer"/></td>
            <td>
              <!-- HIER DUS! -->
              <a href="{@url}"><xsl:value-of select="beschrijving"/></a>
            </td>
          </tr>
        </xsl:if>
        </xsl:for-each>
        </table>

      </body>
    </html>

  </xsl:template>
</xsl:stylesheet>



ik kan ook nergens documentatie vinden over het gebruik van {@node} voor een attribute in xsl (w3schools/google)


Niet succesvolle oplossingen:
De volgende niet succesvolle oplossingen geven de url van het xml bestand zelf weer:
href="{@url}'
href="{beschrijving@url}'
href="{@beschrijving/url}'
href="{@beschrijving|url}'
<a href="{@url}" match="beschrijving">
ook de node hernoemen werkt niet (bijv. hyperlink i.p.v. url) :X

Samenvatting:
Hoe kan ik aangeven dat een node uit het <beschrijving> element gehaald moet worden?

dit is een simpele versie van het bijbehorende xml bestand (bestand.xml):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="bestand.xsl"?>
<a>
  <b>
   <c>
     <nummer>1</nummer>
     <beschrijving url="http://www.tweakers.net/">Tweakers.net</beschrijving>
   </c>
  </b>
  <b>
   <c>
     <nummer>2</nummer>
     <beschrijving url="http://gathering.tweakers.net/">GoT</beschrijving>
   </c>
  </b>
  <content>
    <title>Pagina titel</title>
  </content>
</a>


(ben niet zo super met formuleren, sorry)

[ Voor 18% gewijzigd door airliner op 12-01-2006 19:37 ]


  • airliner
  • Registratie: Juni 2002
  • Laatst online: 26-03 11:55
heb de oplossing inmiddels gevonden, staat onder xpath op w3schools: link

ik moet dus het gebruiken:
code:
1
href="beschrijving/@url"


lekker simpel dus, sorry

  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-01 16:11
el[@attname] mag geloof ik ook :?

heb zelf ook nog klein vraagje, maak maar ff gebruik van de mogelijkheid:
code:
1
<xsl:apply-templates />

appliet dit alle elementen, dus ook textnodes? want als ik dit doe krijg ik al mijn xmldata als tekst te zien :? bekend? want heb verder maar één xls:template match="elementname" .. gekte

[ Voor 93% gewijzigd door r0bert op 12-01-2006 20:46 ]


  • airliner
  • Registratie: Juni 2002
  • Laatst online: 26-03 11:55
weet niet precies je situatie, maar volgens mij moet het dan zijn:
code:
1
<xsl:apply-templates match="*"/>

  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-01 16:11
Zonder de select="*" is het automatisch hetzelfde.

Maar ik zie al het ligt bij mij aan
code:
1
<xsl:template match="module[@attname=='waarde']"> ...

maar ik puzzel wel wat doorhet werkt al ;) thnq iig en succes!

[ Voor 16% gewijzigd door r0bert op 12-01-2006 20:57 ]