fjh: Auf Text-Knoten überprüfen

Beitrag lesen

Hallo,

des Rätsels Lösung: text() reagierts auch auf Absatzmarken und Tabulatoren. (zumindest bei sablotron)

Also sowohl mit
<xsl:if test="child::text()"> als auch
<xsl:if test="./node()[1]=text()">


<person><name>Brunner</name><vorname>Paul</vorname></person>

geht


<person>
<name>Brunner</name>
<vorname>Paul</vorname>
</person>

geht nicht!

Ja, richtig, das wird es sein

Hast Du es schonmal mit dem Top-Level-Element xsl:strip-space versucht? Es hat ein Attribut namens "element", das eine durch Leerzeichen getrennte Liste der Elementnamen aufnimmt, bei denen die Whitespace-Knoten entfernt werden sollen.

<xsl:strip-space name="person"> könnte Dir also helfen. Vielleicht geht auch <xsl:strip-space name="*"> für alle Elemente. Das wäre die einfachste Lösung. Kann es hier gerade nicht ausprobieren.

Folgefrage:
Wie codiere ich bei translate() Sonderzeichen?

Hm, mit Zeichenreferenzen und Unicode-Nummer. Also für Whitespace:

tab #x9
newline #xA
Carriage Return #xD
space #x20

Gruß
Franz

Gruß
Paul