XML Tutorial/XSLT stylesheet/string length
string-length() returns the number of characters in the string
<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>
</Paragraph> 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: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: | 15 | Normalized length: | 15 |
Sequences of whitespace characters | |||
---|---|---|---|
Starting length: | 41 | Normalized length: | 34 |
Leading and trailing whitespace. | |||
Starting length: | 40 | Normalized length: | 32 |
Use string-length function in math calculation
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <numbers>
<x>4</x> <y>3.2</y> <z>11</z>
</numbers>
File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:output method="xml" omit-xml-declaration="yes" /> <xsl:template match="numbers"> 3.2 + string-length("3.2") = <xsl:value-of select="y + string-length(y)" /> </xsl:template>
</xsl:stylesheet> Output:
3.2 + string-length("3.2") = 6.2</source>