我原本以为这对谷歌来说很容易,但我一直没有成功。

我想从属性中分配一个变量值(目前为止很容易),然后使用该变量根据该属性的值选择另一个节点。

例:

<xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id='{@myId}']/@Name />

这不起作用。 如果我用变量中的值替换{@myId},那么它确实找到了正确的节点,但是这样做就不会产生任何结果。 我确定我错过了一些东西,或者也许有不同的方法可以做到这一点。

上下文是在不同的顶级节点下存在共享相同id值的相关数据,因此我需要在模板中获取相关节点。

===============>>#1 票数:17 已采纳

好吧,我终于明白了。 真的很傻问题,我只需要省略引号和括号。 其中一次,我以为我已经尝试过了。 :D哦,我在第一个例子中输错了@myId,代码实际上是$ myId。

<xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id=$myId]/@Name" />

===============>>#2 票数:5

您似乎对使用变量(只是$ variable)和属性值模板感到困惑,它允许您将任何XPath表达式放在某些属性中,例如

<newElement Id="{@Id}"/>

它们显然可以组合在一起,因此您可以在属性值模板中包含变量,例如:

<newElement Id="{$myId}"/>

  ask by palehorse translate from so

未解决问题?本站智能推荐:

3回复

如何在xsl if中使用xsl变量

我试图将xsl变量中的值分配给我的xml文件中的新节点。 此代码有效,但当“lbi:GetCoordinates(PVAL)”的值为空时添加一个空的PROP / PVAL节点: 由于我不想要任何空节点,我只想在“lbi:GetCoordinates(PVAL)”的值不为空时才添加新节点
1回复

XSL-在节点路径中使用变量

我有一个xsl如下 我得到以下输出: 和一个例外: java.lang.ClassCastException:org.apache.xpath.objects.XString与org.apache.xpath.objects.XNodeSet不兼容 我究竟做错了
6回复

如何在xsl:apply-templates中使用XSL变量?

我对xsl:apply-templates的调用相当复杂: 该表达式在其他地方重用,如下所示: 我想以某种方式概括它,所以我可以定义一次并在其他地方重用它。 但是,这似乎不起作用: 有没有更好/不同的方式这样做? 我想要的是在xsl:apply-templates(其
2回复

如何在列出的xml内容中使用xsl:for-each选择第二个节点?

我在单独的xml文件中有一个图形名称列表和宽度和高度信息, 我需要匹配源xml文件中的图形名称,并需要在源xml文件中插入宽度和高度信息作为属性。 这里是源xml文件.. 预期输出xml文件 数字测量xml 我在'$ names'中存储了源文件名属性值。 我
1回复

如何在JavaScript块中使用xsl变量

我正在尝试在xslt文件中的javascript块中使用xsl变量,现在机智了。 这是XSLT(为公共消费而编辑): 如果我在Oxygen中转换XML,则此代码可以正常工作。 但是,当我通过使用javax.xml.transform.Transformer.transform(S
1回复

如何在XSL select语句中使用变量?

我对XSL相当陌生,我想在XSL中使用变量$language : 如何才能做到这一点? 这是我的XML: 谢谢你的帮助!
2回复

如何在XSL 2.0 xsl:key match属性中使用变量?

这不能与Saxon 9.5 EE一起返回错误进行编译: 不幸的是,我需要将这些变量lookup1和lookup2保持不变。 我想在这里更改尽可能少的代码。 它是运行在支持这些构造的自定义企业XSL引擎上的非常老旧的大型代码库。
3回复

如何在xsl:choose中使用xsl:variable

嘿,我有一个要在xsl选择标记中使用的xsl变量 它将给出异常
2回复

XSLT,如何在“xsl:if”中使用“xsl:value-of”?

我是xslt的新手,我想知道是否可以在下面的示例中比较“@userNameKey”的值和<xsl:value-of select="./text()"/> ? 基本上,我只想用以下片段替换问号: <xsl:value-of select="./text()"/>但
1回复

XSLT如何使用xsl:for-each和xsl:if选择节点属性值

我有一个XML文件要用XSLT 1.0呈现。 我的cas如下: 如果longName值为“ Oui_Combi” $Publication = prodDate值(2018年11月21日 ) 其他 $Publication = produc