ThomasM: XSLT 1.0 Leerzeichen/Zeilenumbruch entfernen

Beitrag lesen

Hallo Julian,

wie kann ich das Leerzeichen bzw. Zeilenumbruch von nur einem bestimmten Node entfernen?

Mein Ansatz wäre:

  <xsl:template match="SupplierAddressInformation_001/Street[contains(., ' ')]">
    <Street><xsl:value-of select="substring-before(., ' ')"/> and <xsl:value-of select="substring-after(., ' ')"/></Street>
  </xsl:template>

Passt nicht auf das genannte Element ShipFromAddressInformation (oder es soll die Ausgabe sein), and ist hier als logischer Operator nicht zielführend. Entweder mit normalize-space() oder concat() arbeiten. Ersteres setzt Leerzeichen statt Zeilenumbruch, letzteres zunächst kein Leerzeichen, was sich aber auch noch ergänzen ließe.

<xsl:template match="ShipFromAddressInformation/Street[contains(., '&#10;')]">
  <Street><xsl:value-of select="normalize-space(.)"/></Street>
  <!-- <Street>Test Straße 8-9</Street> -->
</xsl:template>

<xsl:template match="ShipFromAddressInformation/Street[contains(., '&#10;')]">
  <Street><xsl:value-of select="concat(substring-before(., '&#10;'), substring-after(., '&#10;'))"/></Street>
  <!-- <Street>TestStraße 8-9</Street>, ggf. ' ' als zweiten String setzen -->
</xsl:template>

Grüße,
Thomas