如何使用XSLT 1.0读取纯文本内容

jec*_*viz 5 xml xslt xslt-1.0

源文件包含

Hello World, this is a nice world
Run Code Online (Sandbox Code Playgroud)

将XSLT应用于输入文件所需的输出:

<Hello_World message="this is a nice world"/>
Run Code Online (Sandbox Code Playgroud)

我知道我可以unparsed-text轻松地在XSLT 2.0中使用,但我需要使用XSLT 1.0.

我浏览了一会儿,找不到有用的东西.

它可以吗?我需要使用Xalan XSLT处理器.

我认为这个问题具有挑战性.

kjh*_*hes 7

输入文档不可能是纯文本,因为XSLT 1.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>
Run Code Online (Sandbox Code Playgroud)

(请注意,鉴于XSLT 1.0的字符串处理能力有限,最后一个选项可能具有挑战性,但对于某些数据,它可能是可行的.)