希望通过说我在XML / XSL方面有0年经验,并且不熟悉我应该使用的术语来对此进行开头。
我正在研究使用xml文件的代码。 xml文件(我猜是重要的部分)的格式如下:
X 值>
extension-field>
extension-fields>
Case>
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。现在,我认为正在发生的是案件中的每个案件,每个问题都遍历整个部分而不是单个案件,但是我很难弄清原因。
谢谢。
现在我认为正在发生的是案件中的每个案件,每个问题都遍历整个部分而不是单个案件,但是我无法弄清楚原因。
您在xsl:for-each
指令的内容模板中的上下文是Case
元素,但是xsl:value-of
指令使用绝对位置路径(/All/Cases/Case/extension-fields/extension-field[@display-text = 'whatever']/value
)。不管当前上下文节点如何,对于任何输入源来说,总会有相同的结果,因为...是absolute location path。