The newline characters are destroyed by the XML parser long before the XSLT
processor gets to see the data, under the rules for Attribute Value
Normalization. Heaven only knows who thought that was a good idea, but you
can't change it. (It's a wretched nuisance when you use multiline XPath
expressions in a stylesheet.)
Michael Kay
Saxonica
On 25 Oct 2019, at 14:04, Birnbaum, David J djbpitt(_at_)pitt(_dot_)edu
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Dear XSL-List,
When I run serialize() (in Saxon-HE 9.9.1.4J XSLT) over an XML snippet, it
does what I need, except that it replaces LF inside attribute values with SP.
This seems to be consistent with what I read at
https://www.w3.org/TR/REC-xml/#AVNormalize, and the workaround described
there (use a numerical character reference to LF instead of the raw LF
character) works. But I’d like to avoid having to specify in the XML
something that I would prefer to manage during the XSLT transformation, and I
would also like to avoid pre-processing the XML outside an XML environment
and replacing the LF with a numerical character reference there, before
passing the modified XML into the XSLT transformation.
So: Would anyone happen to know of a way within just an XSLT stylesheet to
retain LF within an attribute value as distinct from SP in the output of
serialize()?
Thanks,
David
djbpitt(_at_)gmail(_dot_)com
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--