Avatar billede svekn Nybegynder
01. marts 2004 - 10:43 Der er 13 kommentarer og
1 løsning

Indsættelse af <br> i xsl:apply-templates

Jeg har følgende kode

XML
<FreeFormatPostalAddress>
  <AddressLine>Holmens Kanal</AddressLine>
  <AddressLine>1092  Koebenhavn K</AddressLine>
</FreeFormatPostalAddress>

XSL

<xsl:apply-templates select="FreeFormatPostalAddress/AddressLine"/>

Jeg vil meget gerne indsætte et <br> for hver <AddressLine>
hvordan gør man det.
Avatar billede pelkjaer Nybegynder
01. marts 2004 - 10:46 #1
<AddressLine>Holmens Kanal<![CDATA[<br />]]></AddressLine>
Avatar billede svekn Nybegynder
01. marts 2004 - 10:47 #2
Det er ikke muligt, at påføre det i XSL´en
<xsl:apply-templates select="FreeFormatPostalAddress/AddressLine"/>
Avatar billede atoft Nybegynder
01. marts 2004 - 10:48 #3
Du bliver nødt til at oprette en template med match på addressline og i denne udtrække værdien og der efter sætte din <br/>
Avatar billede nute Nybegynder
01. marts 2004 - 10:50 #4
<xsl:apply-template select="FreeFormatPostalAddress/AddressLine">
    <xsl:value-of select="."/><br/>
</xsl:apply-template>

/nute
Avatar billede nute Nybegynder
01. marts 2004 - 10:51 #5
undskyld...

<xsl:template match="/FreeFormatPostalAddress/AddressLine">
    <xsl:value-of select="."/><br/>
</xsl:template>
Avatar billede svekn Nybegynder
01. marts 2004 - 10:58 #6
Når jeg gør som nute skriver, så får jeg følgende fejl.

"Det reserverede ord xsl:template må ikke bruges her. "

Min kode ser således ud.

<tr>
  <td>
    <xsl:template match="/Participants/OrderingBank/PostalAddress/Addressline">
    <xsl:value-of select="."/><br/></xsl:template>
  </td>
</tr>
Avatar billede nute Nybegynder
01. marts 2004 - 11:09 #7
du skal kalde templaten ... ikke sætte den ind der:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
        <table>
            <tr>
                <td>
                    <xsl:apply-templates />
                </td>
            </tr>
        </table>
    </xsl:template>
    <xsl:template match="/FreeFormatPostalAddress/AddressLine">
        <xsl:value-of select="."/>
        <br/>
    </xsl:template>
</xsl:stylesheet>

/nute
Avatar billede svekn Nybegynder
01. marts 2004 - 12:03 #8
Min kode ser nu sådan ud, men den fejler stadig.

<table cellpadding="0" cellspacing="0" border="0">
.
.Der ligger en masse kode før dette

<tr>
  <td class="RContentLText">Ordregivende bank:</td>
</tr>
<tr>
  <td><xsl:value-of select="Participants/OrderingBank/SWIFTAddress"/><br/></td>
</tr>
  <td>
    <table cellpadding="0" cellspacing="0" border="0">
      <tr><td><xsl:apply-templates /></td></tr>
    </table>
    <xsl:template match="/Participants/OrderingBank/PostalAddress/Addressline">
    <xsl:value-of select="."/><br/></xsl:template>
  </td>
  <tr>
.
.Og en masse kode efter dette.
</table>
Avatar billede nute Nybegynder
01. marts 2004 - 12:31 #9
du skal ikke have en <xsl:template/> inde i en anden template. du skal bruge <xsl:template match=""/> eller <xsl:apply-templates/>. Se på dét eksempel jeg har lavet !!

Denne:

<xsl:template match="/Participants/OrderingBank/PostalAddress/Addressline">
    <xsl:value-of select="."/><br/></xsl:template>

skal laves om til fx:

<xsl:apply-templates/>

derefter skal du lægge denne:

<xsl:template match="/Participants/OrderingBank/PostalAddress/Addressline">
    <xsl:value-of select="."/><br/></xsl:template>

ud i "roden" af din xsl

/nute
Avatar billede svekn Nybegynder
01. marts 2004 - 13:17 #10
Hvis jeg gør som ovenstående så udskriver jeg alt min XML, og det er ikke det der er meningen.
Sådan starter og slutter min kode

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
  <html>

Et par tusind linier kode

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

Inde midt i det hele, skal jeg have skrevet 4 linier ud, hvor der skal være linieskifte imellem.
Avatar billede nute Nybegynder
01. marts 2004 - 13:31 #11
der du skal skrive ud 'Addressline' sætter du ind:

<xsl:apply-templates select="/Participants/OrderingBank/PostalAddress/Addressline"/>

derefter lægger du denne i roden af din xsl:

<xsl:template match="/FreeFormatPostalAddress/AddressLine">
    <xsl:value-of select="."/><br/>
</xsl:template>

så vil du kun få ud dine adresselinjer...
Avatar billede svekn Nybegynder
01. marts 2004 - 13:36 #12
Så ramte jeg den endelig. Mange tak for hjælpen.
Du må undskylde besværet. Hvis du vil have point, så må du lige sende et svar.
Avatar billede svekn Nybegynder
01. marts 2004 - 13:37 #13
Så ramte jeg den endelig. Mange tak for hjælpen.
Du må undskylde besværet. Hvis du vil have point, så må du lige sende et svar.
Avatar billede nute Nybegynder
01. marts 2004 - 13:39 #14
godt at høre :o]
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