Zeichen an einer bestimmten stelle positionieren
Martin
- xsl
Hallo,
Hab folgendes Problem:
Ich habe ein XML-Datei, die Daten über einen Einsender bereit hält.
Ich möchte diese nun mit dem xslProzessor Xalan und einer Xsl Datei in eine Text Datei umwandeln. An sich kein Problem. Das Problem besteht darin:
LUAxxxx xx.xx.xxxxxx:xxxx/xxxx/xxxxxx xxxx
Die XML Datei sieht so aus:
Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<header>
<Probenstelle>xxxx(kann länger sein)</Probenstelle>
<Datum>xx.xx.xxxx</Datum>
<Zeit>xx:xx</Zeit>
<Analysennummer>xx/xxxx/xxxxxx</Analysennummer>
<Preis>xxxx</Preis>
</header>
Der Stylesheet müsste so aussehen irgendwie
Code:
<?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="/">
LUA<xsl:value-of select="header/Probenstelle"/>
<!--Hier müssten 15 Leerstellen rein-->
<xsl:value-of select="header/Datum"/>
<xsl:value-of select="header/Zeit"/>
<xsl:value-of select="header/Analysennummer"/>
<!--Hier müssten 6 Leerstellen rein-->
<xsl:value-of select="header/Preis"/>
</xsl:template>
</xsl:stylesheet>
Die frage ist nun. wie kriege ich das so hin, das auch wenn sich eine Zeichenfolgenlänge ändert die entsprechenden Zeichenfolgen immer an gleicher Stelle sind?
Viele Grüße,
Martin
hier ist eine kleine loesung:
<?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="/">
LUA<xsl:value-of select="header/Probenstelle"/>
<!--Hier müssten 15 Leerstellen rein-->
xsl:text/               
<xsl:value-of select="header/Datum"/>
<xsl:value-of select="header/Zeit"/>
<xsl:value-of select="header/Analysennummer"/>
<!--Hier müssten 6 Leerstellen rein-->
      
<xsl:value-of select="header/Preis"/>
</xsl:template>
</xsl:stylesheet>
Das Ergebnis müsste so aussehen:
Code:LUAxxxx xx.xx.xxxxxx:xxxx/xxxx/xxxxxx xxxx
Die XML Datei sieht so aus:
Code:<?xml version="1.0" encoding="iso-8859-1" ?>
<header>
<Probenstelle>xxxx(kann länger sein)</Probenstelle>
<Datum>xx.xx.xxxx</Datum>
Hallo Martin,
vielleicht solltest du versuchen den String aus Probenstelle mit concat um die erforderlichen 14 oder 15 Leerzeichen zu verlängern um dann mit substring die ersten 19 (?) Zeichen aus dem verlängerten String zu entnehmen.
Gruß Mia