xsl for-each一次输出所有数据,而不是一次输出

问题描述 投票:0回答:1

希望通过说我在XML / XSL方面有0年经验,并且不熟悉我应该使用的术语来对此进行开头。

我正在研究使用xml文件的代码。 xml文件(我猜是重要的部分)的格式如下:

X 值>

extension-field>

extension-fields>

Case>

Y

extension-field>

extension-fields>

Case>

案例>

All>

((请忽略空格,因为我是格式化的笔刷)

每种情况都有自己的扩展字段集。

我正在尝试为我的每个案例提取单个扩展字段值,其中display-text ='whatever'。我写的方式如下:

< xsl:for-each select="All/Cases/Case">

..

     < w:tcPr>

            < w:tcW w:w="{$Col2}" w:type="dxa" />

            < w:vAlign w:val="top" />

     < /w:tcPr>

          < w:p>

            < w:pPr>

              < w:jc w:val="right" />

            < /w:pPr>

            < w:r>

              < w:t>

                  < xsl:value-of select="/All/Cases/Case/extension-fields/extension-field[@display-text = 'whatever']/value" />

              < /w:t>

            < /w:r>

          < /w:p>

 < /w:tc>

..

  < /xsl:for-each>

((将它推到桌子的某个地方,我不确定是否都相关,所以我只显示了我遇到的整个问题)

我期望在输出中看到每个Case的单独值(因此每个case编号旁边都有其X和Y值),但我看到的是每个单个Case旁边都有两个值XY。现在,我认为正在发生的是案件中的每个案件,每个问题都遍历整个部分而不是单个案件,但是我很难弄清原因。

谢谢。

xml xslt
1个回答
0
投票

现在我认为正在发生的是案件中的每个案件,每个问题都遍历整个部分而不是单个案件,但是我无法弄清楚原因。

您在xsl:for-each指令的内容模板中的上下文是Case元素,但是xsl:value-of指令使用绝对位置路径(/All/Cases/Case/extension-fields/extension-field[@display-text = 'whatever']/value)。不管当前上下文节点如何,对于任何输入源来说,总会有相同的结果,因为...是absolute location path

© www.soinside.com 2019 - 2024. All rights reserved.