[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Telefonnummern spationieren mit XSL?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Telefonnummern spationieren mit XSL?

pixelstaub
Beiträge gesamt: 125

14. Mär 2011, 21:10
Beitrag # 1 von 3
Bewertung:
(1831 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebes Forum,

ich importiere per JavaScript eine XML-Datei
Code
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root>
...
<Nummer>
<Nr>89764532</Nr>
</Nummer>
</root>




und transformiere diese mittels xslt-stylesheet. Soweit klappt das gut. Nun frage ich mich: Wäre es auch möglich, Telefonnummern (deren Längen sich natürlich von Fall zu Fall unterscheiden) im XML ebenfalls per XSL zu spationieren (in Zweierpärchen, von hinten ausgehend)?
Ich denke an die Paramter string-length und substring – verbunden mit einer Schleife

Code
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version = "2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding = "UTF-8" indent="yes"/>
<xsl:template match="/"><xsl:element name = "Nummer"><xsl:apply-templates select="/root/."/></xsl:element>
</xsl:template>

<xsl:template match="Nr">
<xsl:element name = "Nr"><xsl:value-of select = "/root/Nummer/Nr"/><xsl:element name = "Nr"><xsl:text>
</xsl:text>
<xsl:element name = "Sub"><xsl:value-of select = 'substring(/root/Nummer/Nr, Länge der Nr-2)'/></xsl:element>
<xsl:element name = "laenge"><xsl:value-of select = 'string-length(/root/Nummer/Nr)'/><xsl:text>
</xsl:text></xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>



Wer hat eine Idee o. Tipps? Gern auch für eine GREP-Suche innerhalb des importierten und platzierten XMLs ...

Danke und Grüße
Stephan
X

Telefonnummern spationieren mit XSL?

Marco Morgenthaler
Beiträge gesamt: 2474

15. Mär 2011, 10:38
Beitrag # 2 von 3
Beitrag ID: #467008
Bewertung:
(1788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan

Folgender Grep haut dir bei Zahlen Achtelgevierte zwischen Ziffernpaare so wie gewünscht (von hinten ausgehend):

Suche: (\d)(?=(\d\d)+\b)
Ändern: $1~<

Es ist eine Adaption von Peter Kahrels Grep, den er von Friedl adaptiert hat =;o) (http://www.hilfdirselbst.ch/..._P312665.html#312665).

Gruss, Marco


als Antwort auf: [#466989]

Telefonnummern spationieren mit XSL?

pixelstaub
Beiträge gesamt: 125

15. Mär 2011, 10:51
Beitrag # 3 von 3
Beitrag ID: #467011
Bewertung:
(1776 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marco,

Tausend Dank Dir, das funktioniert großartig!

Grüße
Stephan


als Antwort auf: [#467008]