0

我对 xslt 的功能有疑问。我有一堆不同的 xml 文件,它们都共享一个通用的 xslt 转换,将它们转换为 html。但是,仅对单个 xml 文件应用转换并不能提取有关它们的所有信息。一些文件有其他共享的 xml 文件来帮助定义它们。因此,我需要能够对所有这些文件执行转换,就好像它们是一个文件一样,而无需实际合并文件。

例如,我们有一个名为“transform.xslt”的转换文件。我们将共享 xml 文件称为“common.xml”,将常规 xml 文件称为“a.xml”。我们有另一个 xml 文件“b.xml”和另一个共享文件“other.xml”。为了有效地转换 a.xml,common.xml 和 a.xml 需要对它们执行在 transform.xslt 中定义的转换,就好像它们是单个文件一样。同样,为了有效地转换 b.xml,common.xml、b.xml 和 other.xml 都需要像合并的单个文件一样进行转换。我真的想知道是否可以创建导入转换 xslt 的 xslt 文件并指定哪些文件需要一起作为一个文件。这样,我可以制作一个 a.xslt、b.xslt 等来执行变换的转换。

如果它可以帮助任何人,那么具体的用例是为 WSDL 创建文档页面。一些额外的信息,例如常见的数据结构和类型,在 common.xsd 中声明。此外,一些 WSDL 引用了并非每个 WSDL 都引用的其他 XSD。

如果这个问题不清楚,我也很抱歉。出于某种原因,我很难准确地表达我想要做什么。这是一个可视化我在想什么的大纲

对于案例 1:

  • 输入(在 a.xslt 中定义)

    • 一个.xml
    • common.xml
  • 转换(在 a.xslt 中导入)

    • 变换.xslt
  • 输出
    • 一个.html

对于案例 2:

  • 输入(在 b.xslt 中定义)
    • b.xml
    • common.xml
    • 其他.xml
  • 转换(在 b.xslt 中导入)
    • 变换.xslt
  • 输出
    • b.html

如果有人仍然感到困惑,请告诉我。我会尽力解释得更清楚。

谢谢!

4

1 回答 1

1

有一个名为doc(参见此处)的 XPath 函数,它允许您将文件的内容保存在xsl:variable. 然后,您可以对变量进行操作,即将它传递给<xsl:apply-templates>,或对其应用 XPath 表达式。如果您需要更具体的帮助,请发布您的实际数据示例,我将为您设置 XSLT。您使用的是 XSLT/XPath 版本 1、2 还是 3?

于 2013-06-21T16:01:32.853 回答