我面临一个XSLT问题,这个问题看起来很明显,但对我来说仍然是个挑战。我需要生成一个唯一的ID,这个ID必须应用于来自不同模板的元素。如果在一个模板中正确地生成和应用了ID,我就不能将它从一个模板应用到另一个模板,因为它超出了范围。
这是我迄今编写的代码。任何指针都将被高度赞赏:)
<xsl:template match="uicontrol">
<xsl:variable name="id" select="generate-id()"/>
<div class="ft-expanding-block" id="{$id}"/>
</xsl:template>
<xsl:template match="codeblock">
<h1><span class="ft-expanding-block-link" data-target-id="{$id}">
<xsl:apply-templates/>
</span></h1>
</xsl:template>XML示例
<uicontrol>Show example</uicontrol>.
<codeblock>
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id":"a7d67610-ceb5-4350-ba5a-746472c4f1f7",
"schemas": [
"urn:scim:schemas:core:1.0",
"urn:scim:schemas:com_pingone:1.0"
],
</codeblock>
<p class="- topic/p">The following code block should be expanded on page load with the label <uicontrol>Hide example</uicontrol>.</p>
<codeblock>
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
</codeblock>发布于 2022-08-18 06:02:31
您有一个名为content的全局变量,另一个名为id的变量仅依赖于content的值,但它是一个模板的本地变量。如果要扩大该id变量的范围,只需将其设置为全局变量,就像content变量一样。只需将其从包含它的template中移出,就可以使它成为stylesheet元素的子元素。
https://stackoverflow.com/questions/73392341
复制相似问题