源文件包含
Hello World, this is a nice world
将XSLT应用于输入文件所需的输出:
<Hello_World message="this is a nice world"/>
我知道我可以很容易地在XSLT2.0中使用unparsed-text
,但我需要使用XSLT1.0。
我浏览了一段时间,找不到有用的东西。
有可能吗?我需要使用XalanXSLT处理器。
我认为这个问题很有挑战性。
输入文档不可能是纯文本,因为XSLT1.0转换的输入必须是格式良好的XML。
以下是在XSLT转换中访问纯文本的一些替代方法:
- 在XSLT 2.0中使用未分析的文本
- 通过顶级参数(
xsl:param
)传入纯文本 - 预处理文本文件,将其转换为格式良好的XML文档
- 动态生成XSLT文件,可能通过元XSLT转换生成,并将纯文本直接包含在XSLT源中。然后只使用一个伪XML输入文件
- 在包装XML中将文本文件引用为外部实体文档,然后使用XSLT处理包装XML文档
下面是外部实体技术的一个示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wrapper [
<!ENTITY textFile SYSTEM "file.txt">
]>
<wrapper>&textFile;</wrapper>
(注意,考虑到XSLT1.0的字符串处理能力有限,最后一个选项可能很有挑战性,但对于某些数据,它可能是可行的。)