gpt4 book ai didi

javascript - 如何使用一个 XSLT 文件中的变量到另一个 XSLT 文件

转载 作者:行者123 更新时间:2023-11-28 07:16:38 25 4
gpt4 key购买 nike

我有一个 scanario,我必须在 xslt 文件中传递一个 javascript 函数的变量。实际上,我在另一个 xslt 文件中操作了该值,我想在此处重用该值。我已经给出了我所尝试的样本。我做错了什么。

子.xslt

.
.
<xsl:variable name="textValuesCSV">
<!-- some manipulation code -->
</xsl:variable>
.
.

main.xslt

.
.
<xsl:include href="sub.xslt"/>
<xsl:template name="test">
<script src="testScript.js"></script>
<script type="text/javascript">
var name = "<xsl:value-of select="$textValuesCSV"/>";
if(typeof analysis == 'function') {
analysis(name);
}
</script>
</xsl:template>
.
.

testScript.js

function analysis(name) {
alert(name)
}

最佳答案

您必须在调用包含的 xslt 之前在 main.xslt 中进行第一个变量声明。然后您可以在 sub.xslt 中为变量赋予更新的值。

现在该值将存在于 main.xslt 的上下文中,您可以在 javascript 函数中调用它。

附注调用模板的方式取决于 XML 输入。如果有一个元素叫<test>您想通过 <xsl:apply-templates match="test"/> 触发模板而不是<xsl:call-template name="test"/>子.xslt

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="textValuesCSV">1234</xsl:variable>
</xsl:stylesheet>

main.xslt

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="textValuesCSV"/>
<xsl:include href="sub.xslt"/>

<xsl:template match="/">
<html>
<xsl:call-template name="test"/>
</html>
</xsl:template>

<xsl:template name="test">
<xsl:copy select="$textValuesCSV"/>
<script src="testScript.js"></script>
<script type="text/javascript">
var name = "<xsl:value-of select="$textValuesCSV"/>";
if(typeof analysis == 'function') {analysis(name);}
</script>
</xsl:template>
</xsl:stylesheet>

在 DOM 中输出:

<document>
<html>
<script src="testScript.js"/>
<script type="text/javascript">
var name = "1234";
if(typeof analysis == 'function') {analysis(name);}
</script>
</html>

关于javascript - 如何使用一个 XSLT 文件中的变量到另一个 XSLT 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30776386/

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