Ik heb een XML newsfeed waar regelmatig tabellen instaan die zijn opgebouwd uit spaties. Als ik daar met een XSL sheet HTML van maak blijft van de opmaak in de browser natuurlijk niets over.
Natuurlijk heb ik het eerst in een <pre> gezet. De tabellen zien er dan goed uit, maar de overige tekst komt op 1 regel en verknoeit de layout. Ik heb geprobeerd of ik dit met een CSS op kon lossen, maar dat was ook zonder succes. <pre> trekt zich niets aan van width en <pre wrap> doet ook niet veel.
Wat wel werkt (in mijn teksteditor met search/replace) is om alle newlines vervangen door <br>, alle dubbele spaties vervangen door en dan een monospaced font gebruiken.
Nu lukt het mij niet om een spatie te vervangen, ook niet als  
Ik gebruik in mij XSL het volgende welbekende template:
wat ik dan aanroep met:
edit: Nog even een voorbeeld van het probleem (daar gaat de opmaak)
kan iemand mij de juiste kant uitsturen?
Natuurlijk heb ik het eerst in een <pre> gezet. De tabellen zien er dan goed uit, maar de overige tekst komt op 1 regel en verknoeit de layout. Ik heb geprobeerd of ik dit met een CSS op kon lossen, maar dat was ook zonder succes. <pre> trekt zich niets aan van width en <pre wrap> doet ook niet veel.
Wat wel werkt (in mijn teksteditor met search/replace) is om alle newlines vervangen door <br>, alle dubbele spaties vervangen door en dan een monospaced font gebruiken.
Nu lukt het mij niet om een spatie te vervangen, ook niet als  
Ik gebruik in mij XSL het volgende welbekende template:
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
| <xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="from"/>
<xsl:param name="to"/>
<xsl:choose>
<xsl:when test="contains($text, $from)">
<xsl:variable name="before" select="substring-before($text, $from)"/>
<xsl:variable name="after" select="substring-after($text, $from)"/>
<xsl:variable name="prefix" select="concat($before, $to)"/>
<xsl:value-of select="$before"/>
<xsl:value-of select="$to"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="$after"/>
<xsl:with-param name="from" select="$from"/>
<xsl:with-param name="to" select="$to"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
wat ik dan aanroep met:
code:
1
2
3
4
5
6
| <xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="/STORY/CONTENT"/>
<xsl:with-param name="from"> </xsl:with-param>
<xsl:with-param name="to"> </xsl:with-param>
</xsl:call-template> |
edit: Nog even een voorbeeld van het probleem (daar gaat de opmaak)
code:
1
2
3
4
5
6
7
8
9
| naam getal getal getal tekst1 212 442 3212 tekst2 2 2 12 tekstje3 3212 42 212 tekstje4 22 442 12 nog een tekst5 2 4 212 laatste tekst 212 442 212 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus nec sem. Aenean consectetuer sem ut mi. Maecenas blandit tellus convallis sapien. |
kan iemand mij de juiste kant uitsturen?
[ Voor 69% gewijzigd door blimmel op 07-01-2004 16:24 . Reden: voorbeeld erbij ]