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

时间:2013-11-21 00:14:26

标签: xml xslt xslt-1.0

源文件包含

Hello World, this is a nice world

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

<Hello_World message="this is a nice world"/>

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

我浏览了一段时间,但找不到有用的东西。

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

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

1 个答案:

答案 0 :(得分:7)

输入文档不可能是纯文本,因为 XSLT 1.0转换的输入必须是格式良好的XML

以下是在XSLT转换中访问纯文本的一些替代方法:

  • XSLT 2.0 中使用unparsed-text
  • 通过top-level parameters (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>

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