【发布时间】:2021-12-23 09:59:02
【问题描述】:
这是我的数据:
<Results>
<Result>
<Id>1</Id>
</Result>
<Result>
<Id>2</Id>
</Result>
</Results>
<Results>
<RefId>1</RefId>
<Text>One</Text>
</Results>
<Results>
<RefId>2</RefId>
<Text>Two</Text>
</Results>
输出应该是怎样的:
<OBR></OBR>
<OBX>One</OBX>
<OBR></OBR>
<OBX>Two</OBX>
我的 xslt 代码
<xsl:key name="test" match="Results/Result" use="Id"/>
<xsl:template match="Results/Result">
<OBR></OBR>
<xsl:for-each select="Results[key('test', RefId)/RefId]">
<OBX><xsl:value-of select="Text" /></OBX>
</xsl:for-each>
</xsl:template>
它不起作用。我的结果是:
<OBR></OBR>
<OBX>One</OBX>
<OBX>Two</OBX>
<OBR></OBR>
<OBX>One</OBX>
<OBX>Two</OBX>
我认为问题出在我的模板中的 for-each 上。每次模板运行时它都会循环两次。有什么建议吗?
【问题讨论】:
-
1.您的输入不是格式正确的 XML,无法由 XSLT 处理。 2. 请用文字说明你试图应用的逻辑。
-
感谢重播。我已经解决了,并在下面的答案中添加了解决方案。