xsl-list
[Top] [All Lists]

Re: [xsl] codepoints-to-string for new line

2013-09-08 03:59:02
A lot of my stylesheets start with entity declarations for cr (
 and in 
some cases &#x0D;&#x0A;) and crt (<xsl:text>&cr;</xsl:text>), so I can write

<xsl:text>abc</xsl:text>&crt;

See for an example [1].

This also works with XSLT 1.0.

Note that &cr; will not work within attributes because of attribute-value 
normalization, a step every XML parser has to  pass during parsing of the 
stylesheet [2]. A workaround is a $newline variable as described by Liam.

Stefan


[1] 
https://code.google.com/p/xslt-sb/source/browse/tags/xslt-sb/0.2/0.2.50/xslt-sb/tools/google_code.xsl

[2] http://www.w3.org/TR/REC-xml/#AVNormalize

 
Am 08.09.2013 um 02:12 schrieb Liam R E Quin <liam(_at_)w3(_dot_)org>:

On Sun, 2013-09-08 at 01:04 +0200, Heiko Niemann wrote:

b) Are there just no (top-rated) samples around because
codepoints-to-string() belongs to an extended set of functions that people
(like me) rarely/never use?

It's part of XSLT 2 [1], which doesn't have as widespread use as XSLT 1.

Using <xsl:value-of select="codepoints-to-string('10')" /> will indeed
give you a newline in cases where using an XML editor on your stylesheet
would turn &#10; into a literal newline which might then be reformatted
as a space by buggy ill-behaved software you shouldn't use :-) :-)

The right way for an editor to show indenting of XML documents is
visually, not by changing the text of the document.

Probably I'd have a global variable, 
<xsl:variable name="newline" select="codepoints-to-string('10')" />
and document in a comment why you are using it.

Then you can use concat("abc", $newline, "cde") to get something much
more readable.

Liam

[1] http://www.w3.org/TR/xpath-functions/#func-codepoints-to-string

-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org freenode/#xml


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


<Prev in Thread] Current Thread [Next in Thread>