XML Tutorial/XSLT stylesheet/normalize space — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:26, 26 мая 2010

normalize-space() returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space.

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <paragraph>

 <text>Normalized text</text>
 <text>Sequences   of      whitespace characters</text>
 <text>    Leading and trailing whitespace.    </text>

</P> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet

     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
<xsl:for-each select="//text"> </xsl:for-each>
             <xsl:value-of select="."/>
Starting length:
             <xsl:value-of select="string-length(.)"/>
Normalized length:
             <xsl:value-of select="string-length(normalize-space(.))"/>
   </xsl:template>

</xsl:stylesheet> Output:

<?xml version="1.0" encoding="UTF-8"?>
Normalized text
Starting length:15Normalized length:15
Sequences of whitespace characters
Starting length:41Normalized length:34
Leading and trailing whitespace.
Starting length:40Normalized length:32
</source>


normalize the space

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <cars>

 <manufacturer name="          Chevrolet

">

   <car>Cavalier</car>
   <car>Corvette</car>
   <car>Impala</car>
   <car>Monte

Carlo</car>

 </manufacturer>

</cars> File: Transform.xslt

<?xml version="1.0"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
   <xsl:apply-templates />
 </xsl:template>
 <xsl:template match="*">
   <xsl:copy>
     <xsl:for-each select="@*">
       <xsl:attribute name="{name()}">
         <xsl:value-of select="normalize-space()"/>
       </xsl:attribute>
     </xsl:for-each>
     <xsl:apply-templates/>
   </xsl:copy>
 </xsl:template>
 <xsl:template match="text()">
   <xsl:value-of select="normalize-space()"/>
 </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><cars><manufacturer name="Chevrolet"><car>Cavalier</car><car>Corvette</car><car>Impala</car><car>Monte Carlo</car></manufacturer></cars></source>


select=normalize-space(translate(substring(.,5),\,/))

   <source lang="xml">

File: Data.xml <?xml version="1.0"?> <greet>

<greeting xml:lang="en">Welcome</greeting>
<greeting xml:lang="fr">Bienvenue</greeting>
<greeting xml:lang="es">Bienvenido</greeting>
<greeting xml:lang="de">Willkommen</greeting>

</greet>

File: Transform.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" />
 <xsl:template match="ms">
   <unix>
     /usr/mike
     <xsl:value-of
       select="normalize-space(translate(substring(.,5),"\","/"))" />
   </unix>
 </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?>

Welcome
Bienvenue
Bienvenido
Willkommen</source>