Beim Entfernen von Elementen Text schreiben
Marc
- xsl
0 Thomas J.S.0 Marc
Hallo!
Ich hab mal wieder eine Anfängerfrage. Folgendes Ausgangsdokument habe ich:
<a>Blabla<b>huh</b><c>ha</c></a>
Daraus hätte ich gerne:
<a>Blabla huh ha</a>
...also den Text des Elements inkl. des Textes aller darin enthaltener Elemente. Nun sieht man aber, das zusätzlich dazu an manchen Stellen, d.h. dort wo vorher zB ein schliessendes Tag "</b>" stand noch ein Wortzwischenraum eingefügt wurde.
Bislang habe ich
<xsl:template match="a">
<a>
<xsl:value-of select="."/>
</a>
</xsl:template>
Damit fehlen mir aber besagte Wortzwischenräume oder allgemein gesprochen: der noch einzufügende beliebige Text.
Wie kann ich das bewerkstelligen?
Viele Grüße,
Marc
Hallo,
...also den Text des Elements inkl. des Textes aller darin enthaltener Elemente. Nun sieht man aber, das zusätzlich dazu an manchen Stellen, d.h. dort wo vorher zB ein schliessendes Tag "</b>" stand noch ein Wortzwischenraum eingefügt wurde.
Bislang habe ich
<xsl:template match="a">
<a>
<xsl:copy-of select=".//text()"/>
</a>
</xsl:template>
Grüße
Thomas
Hallo Thomas!
Vielen Dank für deine Antwort.
<xsl:template match="a">
<a><xsl:copy-of select=".//text()"/>
</a>
</xsl:template>
Aber wie kann ich jetzt an bestimmten Stellen (dort wo Elemente wegfallen), noch Text einfügen? Obiger Schnipsel kopiert zwar allen Text, aber bislang sehe ich mal keine Möglichkeit, da jetzt an bestimmten Stellen noch Text einzufügen (z.B. " " oder ",").
Dank für eure Hilfe! :-)
Viele Gruesse,
Marc
Hallo,
Vielen Dank für deine Antwort.
<xsl:template match="a">
<a><xsl:copy-of select=".//text()"/>
</a>
</xsl:template>Aber wie kann ich jetzt an bestimmten Stellen (dort wo Elemente wegfallen), noch Text einfügen?
Gar nicht (mit em Code).
Obiger Schnipsel kopiert zwar allen Text, aber bislang sehe ich mal keine Möglichkeit, da jetzt an bestimmten Stellen noch Text einzufügen (z.B. " " oder ",").
Dann bleibt dir keine andere Möglichkeit als für jedes Element ein Template zu schreiben. Nach deinem Bsp. also:
<a>Blabla<b>huh</b><c>ha</c></a>
<xsl:template match="a">
<a>
<xsl:apply-templates />
</a>
</xsl:template>
<xsl:template match="b>
"<xsl:value-of select="." />"
</xsl:template>
usw.
Grüße
Thomas