我看到了一个非常相似的问题here,但我只需要清楚这一点。
这是我的XML数据文件的流程图:
以下是一些背景知识:
Name
内的HighlightNames
值列表(以橙色标记)。现在,我知道我可以将HighlightNames\Name
分配给变量,例如:NameToCheck
,然后将其作为param
传递到各种模板中。但这将是很多级联。例如:
HighlightNames\Name
MeetingWorkBook\Meeting
TFGW
TFGWItem
Name - does it match?
因此,在上述情况下,我们必须将值级联下来5次。
这是对的吗?无法在NameToCheck
次迭代中分配HighlightNames\Name
变量,这可以在不需要级联的情况下使用吗?
感谢您的澄清。
我以为我用流程图解释了这个概念。但我从未提到过多个XSL文件。
此处的目标是为每个名称创建计划,并通过突出显示其名称的使用位置来对其进行个性化。
所以:
Import names XML as varNames
For each name in varNames
Set varNameToHighlight as name
For each MeetingWorkbook\Meeting
Param varNameToHighlight
End for
End for
据我所知,我必须将名称级联下来。
答案 0 :(得分:1)
常用两种方法。
(a)在树中处理级别5的节点时,可以使用祖先轴查找有关更高级别节点的信息。这很好,只需重新计算"变量"你实际上想要从这个级别的节点做起来并不算太多。
(b)在XSLT 2.0+中,您可以将隧道参数传递给被调用的模板。隧道参数通过多级模板调用向下传递,这似乎正是您正在寻找的。 p>
您已经标记了XSLT 1.0这个问题,但我认为您需要了解阻碍您前进到更现代版语言的原因。