This work is licensed under a CC |
While XML Transformations (XSLT) 1.0 has become a successful programming language widely used for transforming XML documents, its limitations sometimes make it difficult to use XSLT in a good way. An important reason for many of the limitations is the fact that XSLT 1.0 has been designed as a client-side language. Building on XSLT 1.0 and XPath 2.0, XML Transformations (XSLT) 2.0 improves the language in a variety of ways.
typedlanguage (strings, IDs, IDREFs)
speakingidentifiers are required
2007/10/25
main property
structured documents
markup
spreadsheet data
matches("abracadabra", "bra") eq true()
matches("abracadabra", "^a.*a$") eq true()
matches("abracadabra", "^bra") eq false()
replace("abracadabra", "bra", "*") eq "a*cada*"
replace("abracadabra", "a.*a", "*") eq "*"
replace("abracadabra", "a.*?a", "*") eq "*c*bra"
replace("abracadabra", "a(.)", "a$1$1") eq "abbraccaddabbra"
replace("abracadabra", "^(.*?)b(.*)$", "$1c$2") eq "acracadabra"
tokenize("just plain text", "\s+") eq ( "just", "plain", "text" )
tokenize("1,15,,24,50,", ",") eq ( "1", "15", "", "24", "50", "" )
tokenize("HTML <BR> tag<br />soup", "\s*<br\s*/?>\s*", "i") eq ("HTML", "tag", "soup")
<xsl:analyze-string select="abstract" regex="\n"> <xsl:matching-substring> <br/> </xsl:matching-substring> <xsl:non-matching-substring> <xsl:value-of select="."/> </xsl:non-matching-substring> </xsl:analyze-string>
Character Markup
[…]for the citation identification
<xsl:analyze-string select="body" regex="\[(.*?)\]"> <xsl:matching-substring> <cite><xsl:value-of select="regex-group(1)"/></cite> </xsl:matching-substring> <xsl:non-matching-substring> <xsl:value-of select="."/> </xsl:non-matching-substring> </xsl:analyze-string>