gpt4 book ai didi

xml - 打印出 XSL 变量的值

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:21 25 4
gpt4 key购买 nike

有人可以告诉我如何在我的 XSL 转换中打印出一个变量吗?似乎是一件很容易做的事情,但我似乎做不到。这是我的代码:

<?xml version='1.0' encoding='UTF-8' ?>
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template name="ControlledListStructure">
<xsl:param name="xmlElem" />
<xsl:param name="dataName" />

<xsl:element name="{$xmlElem}">
1: <xsl:text>{$xmlElem}</xsl:text>.
2: {$xmlElem}.
</xsl:element>
</xsl:template>

</xsl:stylesheet>

如果我用“Wibble”(一个字符串 - 不是一个节点)的 xmlElem 值调用这个模板,我会得到以下输出:

<Wibble>
1: {$xmlElem}.
2: {$xmlElem}.
</Wibble>

所以我的参数是正常过来的,就是不能正常访问。谁能告诉我如何让 $xmlElem 正确打印出来,以便我看到:

<Wibble>
1: Wibble.
2: Wibble.
</Wibble>

感谢任何输入。

最佳答案

所有答案都缺少一些重要的东西:进一步阅读:

Can someone please tell me how to print out a variable in my XSL transform? Seems like an easy enough thing to do but I just can't seem to do it.

在 XSLT 1.0 中,有两种主要的方式来生成 <xsl:variable> 的内容。 , 取决于它是否包含标量值(字符串、数字或 bool 值)或具有结构化值——节点集(来自 xml 文档的一个或多个节点):

  1. <xsl:value-of select="$yourscalarVariableName"/> 使用它来产生标量值。实际上生成一个文本节点,包含此标量值。

  2. <xsl:copy-of select="$yourStructuredVariableName"/> 使用它来生成变量中包含的所有节点的副本。

重要的是要知道,如果 xsl:variable包含节点列表和 <xsl:value-of ...>使用指令时,只会产生第一个节点的字符串值。这是一个经常犯的错误和常见问题解答。

还有第三种方式:如果 <xsl:variable>应该用于生成属性:

  <someLiteralResultElement someAttribute="{$theVariable}"/>

计算花括号中的 XPath 表达式(称为 AVT -- attribute-value-template )并将结果放入属性值中。

在 XSLT 2.0 中,<xsl:value-of .../>指令,当不在兼容模式下运行时,生成一个文本节点列表——一个用于 xsl:variable 中包含的每个节点。 .当以兼容模式运行时(指定属性 version="1.0"),<xsl:value-of>指令的行为方式与它在 XSLT 1.0 中的行为方式相同。

在 Xslt 2.0 中 <xsl:copy-of>行为方式与 XSLT 1.0 中相同。但是建议使用新的 <xsl:sequence> 指令,因为前者生成每个节点的新副本,而 <xsl:sequence>不会产生新的节点副本。

关于xml - 打印出 XSL 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/709594/

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