gpt4 book ai didi

xslt - 为什么我必须将此节点分配给样式表中的变量?

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

我正在处理 XSLT 样式表。我有一个节点(节点 A)和一堆 child ,我正在遍历另一个节点(节点 B)的 child 。每次节点 B 的子节点也是节点 A 的子节点时,我都在尝试做一些事情,所以我有以下代码:

<xsl:if test="$prodbins/bin[./text()=/root/Line[1]/Element[6]/text()]">

但这不起作用(测试失败;表达式返回 false),即使表达式的左侧和右侧在单独计算时相等。

但是当我这样做时:
<xsl:variable name="curbin" select="/root/Line[1]/Element[6]/text()"/>
<xsl:if test="$prodbins/bin[./text()=$curbin]">

该表达式的计算结果为真。为什么我必须使用 $curbin 变量来获得我期望的结果?

最佳答案

可以试试吗<xsl:if test="$prodbins/bin[./text()=current()/root/Line[1]/Element[6]/text()]"> (注意 current() 函数)。它在您的原始表达式中不起作用的原因是因为您查询了一个变量和 /查找变量内容的根节点,而不是您正在转换的源文档。 current() 应该返回您所在模板的上下文元素。

关于xslt - 为什么我必须将此节点分配给样式表中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13498399/

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