<br> Tag aus xml Element-Inhalten entfernen/ersetzen
tone
- xsl
Hallo,
folgendes xml Element (Ausschnitt) soll via xsl-fo in pdf gewandelt werden
sql:inhalt text text text text text <br> text text text text text text text <br> text text </sql:inhalt>
Ich würde nun gerne dieses <br> Tag aus dem text herausnehmen und wenn möglich mit fo:block </fo:block> ersetzen, also quasi daraus einen Zeilenumbruch machen. Translate übersetzt ja leider nur einzlene Zeichen statt ganze Strings
Wie gehe ich vor?
Vielen Dank
Hallo,
folgendes xml Element (Ausschnitt) soll via xsl-fo in pdf gewandelt werden
sql:inhalt text text text text text <br> text text text text text text text <br> text text </sql:inhalt>
Ich würde nun gerne dieses <br> Tag aus dem text herausnehmen und wenn möglich mit fo:block </fo:block> ersetzen, also quasi daraus einen Zeilenumbruch machen. Translate übersetzt ja leider nur einzlene Zeichen statt ganze Strings
Wie gehe ich vor?
<xsl:template match="br">
fo:block</fo:block>
</xsl:template>
<xsl:template match="sql:inhalt">
xsl:apply-templates /
</xsl:template>
Grüße
Thomas
Hi Thomas,
danke für die Antwort. Das Problem wird vielleicht durch diesen UltraEdit Ausschnitt deutlicher.
http://img130.imageshack.us/img130/9450/inhalt6ry.png
Man darf dieses <br> eigentlich nicht als Tag ansehen, sondern als normalen Text. Anders ausgedrückt, man ersetze '<br>' mit z.B. 'Auto' dann sehe das so aus:
sql:inhalttext text text Auto text text text Auto </sql:inhalt>
Nun soll überall dort wo 'Auto' steht, ein fo:block </fo:block> hin
Danke
Hallo,
diese Diskussion hatte ich auch schon einmal geführt, da ich ähnliches anstellen wollte. Ich glaube die replace Funktion gibt es erst in XPath 2.0. Mir wurde damals ein rekursive template mit substring-before und substring-after empfohlen. Habe es dann aber nicht weiter verfolgt, da ich es anderweitig lösenkonnten.
Viele Grüße,
Holger
Hi Thomas,
danke für die Antwort. Das Problem wird vielleicht durch diesen UltraEdit Ausschnitt deutlicher.
http://img130.imageshack.us/img130/9450/inhalt6ry.pngMan darf dieses <br> eigentlich nicht als Tag ansehen, sondern als normalen Text. Anders ausgedrückt, man ersetze '<br>' mit z.B. 'Auto' dann sehe das so aus:
sql:inhalttext text text Auto text text text Auto </sql:inhalt>
Nun soll überall dort wo 'Auto' steht, ein fo:block </fo:block> hin
Danke
Danke für den Hinweis. Mit einem rekursiven Termplate funktioniert es.