gpt4 book ai didi

xml - 如何在 xsl 中的另一个 for-each 中使用 for-each

转载 作者:数据小太阳 更新时间:2023-10-29 02:03:44 24 4
gpt4 key购买 nike

xml是

<XYZ>
<manager>
<mId>m1</mId>
<mName>mName1</mName>
<manager>
<manager>
<mId>m2</mId>
<mName>mName2</mName>
<manager>
<department>
<dName>d1</dName>
<dManager>m1</dManager>
<department>
<department>
<dName>d2</dName>
<dManager>m1</dManager>
<department>
<department>
<dName>d3</dName>
<dManager>m2</dManager>
<department>
</XYZ>

对于每个经理,输出他管理的所有部门名称,我的代码是这样的

<xsl:for-each select="XYZ/manager">
<xsl:variable name='mId'>
<xsl:value-of select="mId"/>
</xsl:variable>
<p>
manager <xsl:value-of select="mName"/> manages department
<xsl:for-each select="XYZ/department[dManager=$mId]">
<xsl:value-of select="XYZ/department/dName"/>,

</xsl:for-each>
</p>
</xsl:for-each>

manages department之后没有任何输出,有人知道怎么回事吗?谢谢!

最佳答案

您的 for-each 中存在上下文问题:for-each 指令更改了上下文,然后当您应用第二个 for-each 和/或当您调用 department/dName 的值时,您不在正确的上下文中。

然后只需按如下方式修复最后两个选择:

<xsl:for-each select="XYZ/manager">
<xsl:variable name='mId'>
<xsl:value-of select="mId"/>
</xsl:variable>
<p>
manager <xsl:value-of select="mName"/> manages department
<xsl:for-each select="/XYZ/department[dManager=$mId]">
<xsl:value-of select="dName"/>,
</xsl:for-each>
</p>
</xsl:for-each>

关于xml - 如何在 xsl 中的另一个 for-each 中使用 for-each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010649/

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