Toon posts:

[XML] Link openen in new window

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een link gemaakt in XML openen in een new window. In HTML gebruik je gewoon ...target=_blank> maar hoe krijg ik dit in het volgende stuk voor elkaar.
code:
1
2
3
4
5
6
7
8
<xsl:template match="URL">
  <a>
  <xsl:attribute name="href">
    <xsl:value-of />
  </xsl:attribute>
  <xsl:value-of />
  </a>
</xsl:template>

Nu wordt de link goed weergegeven maar hij wordt standaard in de huidige browser geopend.

Iemand ?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, je gaat jezelf voor je kop slaan ;) .
code:
1
2
3
4
5
6
7
8
9
<xsl:template match="URL">
  <a target="_blank">
    <xsl:attribute name="href">
    <xsl:value-of />
    </xsl:attribute>

    <xsl:value-of />
  </a>
</xsl:template>

of:
code:
1
2
3
4
5
6
7
8
9
10
<xsl:template match="URL">
  <a>
    <xsl:attribute name="href">
    <xsl:value-of />
    </xsl:attribute>
    <xsl:attribute name="target">_blank</xsl:attribute>

    <xsl:value-of />
  </a>
</xsl:template>

of:
code:
1
2
3
4
5
<xsl:template match="URL">
  <a href="{.}" target="_blank">
    <xsl:value-of />
  </a>
</xsl:template>

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Tja, dit is wel een hele domme vraag eigenlijk :o

Dank je

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MiKe_V: Tja, dit is wel een hele domme vraag eigenlijk :o
Ach, als er geen domme vragen waren, waren er weer geen slimme vragen ;) .
Dank je
Graag gedaan ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
En dan nog iets.
In XML heb ik <BODYTEXT>....</BODYTEXT>

Uit deze string wil ik de URL's filteren en als URL weergegeven. Ik heb dit gedaan door de gefilteerde URL's tussen <URL>...</URL> te laten zetten. Dan krijg ik dus <BODYTEXT>......<URL>...</URL>....</BODYTEXT>

Als ik nu de BODYTEXT en URL's af wil gaan beelden wordt eerst alle BODYTEXT getoond en dan daarna alle URL's achter elkaar. Is dit ook op te lossen zodat de URL's gewoon op de juiste plaats in de text verschijnen ???
Of moet ik dan niet met die <URL>..</URL> binnen de BODYTEXT werken ???

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Jawel, dat kan prima, maar je moet dan percee gebruik gaan maken van meerdere templates.

Als je de bodytext transformeert met value-ofs gaat het niet goed..

Voorbeeld:
code:
1
Boek<vet>Bla <cursief>Bah</cursief> bla </vet>

kan getransformeerd worden met:
code:
1
2
3
4
5
6
7
8
9
10
11
<xsl:template match="vet">
  <b>
    <xsl:apply-templates/>
  </b>
</xsl:template>

<xsl:template match="cursief">
  <i>
    <xsl:apply-templates/>
  </i>
</xsl:template>

Dit is in feite hetzelfde probleem als wat jij hebt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Ik heb nu:
code:
1
2
3
4
5
6
    <td>
        <div class="UserGenericBody">
        <xsl:apply-templates select="BODYTEXT"/>
        <xsl:apply-templates select="URL"/>
        </div>
    </td>

en verderop
code:
1
2
3
4
5
6
7
8
9
10
11
12
<xsl:template match="BODYTEXT">
    <xsl:value-of />
</xsl:template>

<xsl:template match="URL">
  <a target="_blank">
  <xsl:attribute name="href">
    <xsl:value-of />
  </xsl:attribute>
  <xsl:value-of />
  </a>
</xsl:template>

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MiKe_V: Ik heb nu:
code:
1
2
3
4
5
6
    <td>
        <div class="UserGenericBody">
        <xsl:apply-templates select="BODYTEXT"/>
        <xsl:apply-templates select="URL"/>
        </div>
    </td>
Hierdoor komt de stuff uiteraard achter elkaar te staan... Als URLs in body tekst staan moet je dit doen:
code:
1
2
3
4
5
    <td>
        <div class="UserGenericBody">
        <xsl:apply-templates select="BODYTEXT"/>
        </div>
    </td>

Omdat body-text substructuur bevat moet je daar ook apply-templates aanroepen:
code:
1
2
3
<xsl:template match="BODYTEXT">
    <xsl:apply-templates/>
</xsl:template>

Tekst wordt automagisch ingevoegd via de default template voor text().

URL was verder goed :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Overigens is die template voor BODYTEXT nu geeneens meer nodig omdat daarvoor ook de default template voor elementen gebruikt kan worden :) . Die past namelijk ook gewoon apply-templates toe.

Alleen het eerste stukje code en van de URL blijven dan dus over. Met het wel opgeven van de bodytext template is natuurlijk verder niets mis.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Wederom een probleem opgelost

En wederom Dank je ;)
Pagina: 1