Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Telefonnummern spationieren mit XSL?

Telefonnummern spationieren mit XSL?

pixelstaub
Beiträge gesamt: 128

14. Mär 2011, 21:10
Bewertung:

gelesen: 1878

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
---------------
http://www.pixelstaub.de/blog/
http://www.pixelstaub.de/

Telefonnummern spationieren mit XSL?

Marco Morgenthaler
Beiträge gesamt: 2474

15. Mär 2011, 10:38
Bewertung:

gelesen: 1835

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

Telefonnummern spationieren mit XSL?

pixelstaub
Beiträge gesamt: 128

15. Mär 2011, 10:51
Bewertung:

gelesen: 1823

Beitrag als Lesezeichen
Hallo Marco,

Tausend Dank Dir, das funktioniert großartig!

Grüße
Stephan
---------------
http://www.pixelstaub.de/blog/
http://www.pixelstaub.de/