Formatierung
Joe
- xsl
Hallo,
ich habe ein kleines Problem:
Der relevante Bereich ist folgender -
<content>
<contentleft>
<para>
<text style="linebreak">TEXT...</text>
<text>TEXT...</text>
</para>
<para>
<text style="headline">TEXT...</text>
<text style="linebreak">TEXT...</text>
</para>
</contentleft>
</content>
Per XSL kann ich nun jeden dieser Knoten formatieren. Und nun die Frage:
Wie kann ich innerhalb des Tags "text" weitere formatierungen vornehmen? Angenommen ich will einige Stellen bold setzen.
Tach Joe,
Wie kann ich innerhalb des Tags "text" weitere formatierungen vornehmen? Angenommen ich will einige Stellen bold setzen.
Welche Software soll den die Ausgabe übernehmen? Wenn es ein Browser ist, transformiere die Inhalte nach (X)HTML und zeichne die speziellen Informationen entsprechen aus.
Man liest sich,
svg4you
Nabend
Welche Software soll den die Ausgabe übernehmen? Wenn es ein Browser ist, transformiere die Inhalte nach (X)HTML und zeichne die speziellen Informationen entsprechen aus.
Mit XSL will ich die Transformation vornehmen. Ich muss nur einen Weg finden das XML so auszuzeichnen, dass ich mit xsl die "gekennzeichneten" Stellen dann bold setzen kann.
Tach Joe,
Mit XSL will ich die Transformation vornehmen. Ich muss nur einen Weg finden das XML so auszuzeichnen, dass ich mit xsl die "gekennzeichneten" Stellen dann bold setzen kann.
Dann verwende eigene Elemente:
<bla>normaler Text <bold>fetter Text</bold> normaler Text</bla>
Dann frage die Kindknoten des bla-Elements ab und extrahiere die text()-Knoten bzw. den/die bold-Element-Knoten und dessen/deren Textknoten usw.
Man liest sich,
svg4you
Dann verwende eigene Elemente:
<bla>normaler Text <bold>fetter Text</bold> normaler Text</bla>
Genau da liegt mein Problem. Sobald ich innerhalb des Tag "text" ein weiteres lege, dann gibt er mir den Text nur bis zu diesem zweiten Tag aus.
Bsp:
<text>Normaler Text <bold>bolder Text</bold> Weiterer Text</text>
Ausgabe:
Normaler Text
Wahrscheinlicher ist, dass ich mit dem XSl das nicht richtig fange, vermute ich
Tach Joe,
Bsp:
<text>Normaler Text <bold>bolder Text</bold> Weiterer Text</text>
Ausgabe:
Normaler Text
Hier mal ein konkretes Beispiel:
XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<blabla>
<bla>normaler Text <bold>fetter Text</bold> normaler Text</bla>
<bla><bold>hier fett</bold> hier normal <bold>und wieder fett</bold></bla>
</blabla>
XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="blabla">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bla">
<p><xsl:apply-templates/></p>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="bold">
<b><xsl:value-of select="text()"/></b>
</xsl:template>
</xsl:stylesheet>
HTML-Ergebnis (hier ohne Grundgerüst):
<p>normaler Text <b>fetter Text</b> normaler Text</p>
<p><b>hier fett</b> hier normal <b>und wieder fett</b></p>
Man liest sich,
svg4you
Hi,
vielen Dank, jetzt hab ich meinen Logikfehler entdeckt. Jetzt bin auch ich für heute Abend glücklich UND
ich hab auch schon meine gute Tat für heute hinter mir in dem ich jemand anderem eine Lösung vorgelegt habe :)
Schönen Abend noch