gpt4 book ai didi

XSLT:没有输入文件时如何触发模板?

转载 作者:行者123 更新时间:2023-12-04 23:02:09 26 4
gpt4 key购买 nike

我正在创建一个模板,它基于单个字符串生成输出,通过参数传递,并且不使用输入 XML 文档。 xsltproc似乎很高兴使用指定样式表的单个参数运行,但我没有看到没有输入文件触发模板的方法(例如,xsltproc 没有参数来运行命名模板)。

我希望能够运行:

xsltproc --stringparam bar baz foo.xsl

但我目前必须运行,“主”模板匹配“/”:
echo '<xml/>' | xsltproc --stringparam bar baz foo.xsl -

我怎样才能让它工作?我敢肯定,我过去曾见过其他模板,它们本来是在没有输入文档的情况下运行的,但我不记得它们是如何工作的,也不记得在哪里可以再次找到它们。 :-)

最佳答案

事实上,这已经经常发生了。

XSLT 2.0它在规范中定义。提供初始上下文节点是可选的。
如果没有提供初始上下文节点(没有源 XML 文档),那么提供命名模板的名称很重要,该模板将作为转换的入口点执行。

XSLT 1.0 可以向转换提供它自己的主要样式表模块(文件)作为源 XML 文档,当然,转换可以完全忽略这个源 XML 文档。 Jeni Tennison 很久以前就已经证明并使用了这种技术。 .

例如:

<?xml-stylesheet type="text/xsl" href="example.xml"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<p>Hello, world!</p>
</xsl:template>
</xsl:stylesheet>

当上面的代码保存在一个名为“example.xml”的文件中,然后用Windows资源管理器显示文件夹内容,双击文件“example.xml”将打开IE并产生:

Hello World !

关于XSLT:没有输入文件时如何触发模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com