0

假设我想从许多具有以下格式的 xml 中编写文本输出。其中一些 xml 文件可能没有节点 [name , age , school] 的值。


<学生>

<name>迪鲁克</name>

<年龄/>

<学校>abc</学校>

</学生>


所有这些 xml 文件都位于一个目录中,我遍历它们以生成每个 xml 的输出文件。

所以基本上我正在使用一个 xsl 文件 iu 并尝试通过考虑这些类似格式的 xml 文件 [具有不同节点值] 来生成输出。

但我只需要将相应的输出写入具有一定条件的xml文件。[假设有一个名称,因为某些 xml 文件不包含名称值]。

因此,如果我有 5 个要转换的 xml 文件并且其中只有 3 个文件具有非空名称值,我只想生成其中的 3 个输出文件。

我更喜欢 XSL 方面的解决方案,我知道这是最不可能的,但是如果我们可以在不读取输出文件的内容并删除它们或根据 java 端的大小 [0kB] 删除它们的情况下做到这一点,它也真的很有帮助。

提前致谢 :)

4

1 回答 1

0

在 XSLT 1.0 中,如果没有特定于供应商的扩展,就不可能在样式表级别生成多个输出。根据您使用的 XSLT 1.0 引擎,有一些扩展可以启用多个输出,我在下面放置了一些链接。作为替代方案,您可以考虑让您的客户多次调用样式表,每个输入文件一次。

至于 XSLT 2.0,我将采取的方法是:

  1. 向样式表提供一个以空格分隔的输入文件名列表作为参数。
  2. 对于文件名,将其作为文档打开
  3. 对于每个具有名称节点的文件,使用 xsl:result-document 和模板复制到文件名基于输入文件名的输出文件。

例如样式表 (XSLT 2.0),请参阅:

对于 XSLT 1.0,Microsoft 案例,请参阅:

对于 XSLT 1.0、XALAN 案例,请参见:

另请参阅相关问题:

于 2012-05-31T03:48:48.047 回答