Forenindex » Diverses » Was sonst nirgends rein passt... » Zeileinumbruch mittels XSL ersetzen.

Zeileinumbruch mittels XSL ersetzen.

Wolfgang Reszel
Beiträge gesamt: 4170

15. Dez 2006, 12:45
Bewertung:

gelesen: 840

Beitrag als Lesezeichen
Hallo,

ich habe eine XSL-Vorlage um Adressen in FileMaker als VCF-Datei zu exportieren. Das Problem ist, dass mehrzeilige Felder die VCF-Datei ungültig machen. Ich müsste also alle Zeilenumbrüche durch die Zeichenfolge \n ersetzen. Doch wie baue ich das ein?

Hier ein Beispiel wie ein Feldwert geholt wird ...

Code
	<xsl:variable name="Notes"> 
<xsl:call-template name="getFieldname">
<xsl:with-param name="expected_fieldname" select="'Notizen::Notiz Text'" />
</xsl:call-template>
</xsl:variable>


und wieder ausgegeben wird.

Code
note:<xsl:if test="not (string-length(fmp:COL[number($Notes)]/fmp:DATA) = 0)"><xsl:value-of select="fmp:COL[number($Notes)]/fmp:DATA"/></xsl:if> 


Im Netz habe ich folgendes gefunden, welches Zeilenumbrüche ersetzt, doch wie und wo kann ich das in die vorhandene Vorlage einbauen?

Code
	<xsl:template name="break"> 
<xsl:param name="text" select="."/>
<xsl:choose>
<xsl:when test="contains($text, '&#xa;')">
<xsl:value-of select="substring-before($text, '&#xa;')"/>
\n
<xsl:call-template name="break">
<xsl:with-param name="text" select="substring-after($text, '&#xa;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>


Oder muss ich es gar in das Template einbauen, welches das Filemaker-Feld holt?

Code
	<xsl:template name="getFieldname"> 
<xsl:param name="expected_fieldname" />
<xsl:if test="not (count ( /fmp:FMPXMLRESULT/fmp:METADATA/fmp:FIELD[@NAME = $expected_fieldname] ) = 0)">
<xsl:value-of select="count(/fmp:FMPXMLRESULT/fmp:METADATA/fmp:FIELD[@NAME = $expected_fieldname]/preceding-sibling::*) + 1" />
</xsl:if>
<xsl:if test="count ( /fmp:FMPXMLRESULT/fmp:METADATA/fmp:FIELD[@NAME = $expected_fieldname] ) = 0">
<xsl:value-of select="0" />
</xsl:if>
</xsl:template>


Hat hier jemand etwas Ahnung und kann mir helfen?
Wolfgang


Mach mit bei Illustrator Praxis, dem Wiki rund um Illustrator.