How to read plain text content with XSLT 1.0
xml, xslt, xslt-1.0
Solution
It is not possible for the input document to be plain text because the input to an XSLT 1.0 transformation must be well-formed XML.
Here are some alternative ways to access plain text in an XSLT transformation:
- Use unparsed-text in XSLT 2.0.
- Pass the plain text in via top-level parameters (`xsl:param`).
- Preprocess the text file to turn it into a well-formed XML document.
- Generate the XSLT file dynamically, possibly via a meta XSLT transformation, and include the plain text directly in the XSLT source. Then just use a dummy XML input file.
- Reference the text file as an external entity in a wrapper XML document, and then process the wrapper XML document using XSLT.
Here's an example of the external entity technique:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wrapper [
<!ENTITY textFile SYSTEM "file.txt">
]>
<wrapper>&textFile;</wrapper>
(Note that this last option could be challenging given XSLT 1.0's limited string processing abilities, but for some data, it may be viable.)
Problem
The source file contains ``` Hello World, this is a nice world ``` The output desired applying the XSLT to the input file: ``` <Hello_World message="this is a nice world"/> ``` I know I can use `unparsed-text` in XSLT 2.0 easily, but I need do it with XSLT 1.0. I browsed a while, and I can't find something useful. Is it posible? I need to use Xalan XSLT processor. I think this question is challenging.