Xml 每个组嵌入的每个组的父级中的XSL 2.0参考值
我有这样的XML:Xml 每个组嵌入的每个组的父级中的XSL 2.0参考值,xml,xslt,xslt-2.0,Xml,Xslt,Xslt 2.0,我有这样的XML: <DATA> <GROUP_ACCT>123456</GROUP_ACCT> <GROUP_DESC>Example</GROUP_DESC> <CHILD_ACCT>12345678</CHILD_ACCT> <CHILD_DESC>Example - Acct 1</CHILD_DESC> </DATA> <DATA> &
<DATA>
<GROUP_ACCT>123456</GROUP_ACCT>
<GROUP_DESC>Example</GROUP_DESC>
<CHILD_ACCT>12345678</CHILD_ACCT>
<CHILD_DESC>Example - Acct 1</CHILD_DESC>
</DATA>
<DATA>
<GROUP_ACCT>234567</GROUP_ACCT>
<GROUP_DESC>Example2</GROUP_DESC>
<CHILD_ACCT>23456789</CHILD_ACCT>
<CHILD_DESC>Example2 - Acct 1</CHILD_DESC>
</DATA>
<xsl:for-each-group select="DATA" group-by="concat(GROUP_ACCT, '|', GROUP_DESC)">
<tr>
<td><xsl:value-of select="current-grouping-key()"/></td>
</tr>
<xsl:for-each-group select="DATA" group-by="concat(CHILD_ACCT, '|', CHILD_DESC)">
<tr>
<td><xsl:value-of select="current-group()/../current-grouping-key()"/></td>
</tr>
</xsl:for-each-group>
</xsl:for-each-group>
123456
例子
12345678
示例-会计科目1
234567
例2
23456789
示例2-科目1
我有如下代码:
<DATA>
<GROUP_ACCT>123456</GROUP_ACCT>
<GROUP_DESC>Example</GROUP_DESC>
<CHILD_ACCT>12345678</CHILD_ACCT>
<CHILD_DESC>Example - Acct 1</CHILD_DESC>
</DATA>
<DATA>
<GROUP_ACCT>234567</GROUP_ACCT>
<GROUP_DESC>Example2</GROUP_DESC>
<CHILD_ACCT>23456789</CHILD_ACCT>
<CHILD_DESC>Example2 - Acct 1</CHILD_DESC>
</DATA>
<xsl:for-each-group select="DATA" group-by="concat(GROUP_ACCT, '|', GROUP_DESC)">
<tr>
<td><xsl:value-of select="current-grouping-key()"/></td>
</tr>
<xsl:for-each-group select="DATA" group-by="concat(CHILD_ACCT, '|', CHILD_DESC)">
<tr>
<td><xsl:value-of select="current-group()/../current-grouping-key()"/></td>
</tr>
</xsl:for-each-group>
</xsl:for-each-group>
在本例中,我试图访问父元素的current-grouping-key(),但似乎可以从每个组的嵌入式中使其工作
有没有办法做到这一点?你的例子对我来说毫无意义——以下是基于对你的问题真正意义的猜测
您似乎认为,如果为每个组嵌套两条xsl:for
指令,则外部组及其属性将在父轴上可用。事实并非如此。父轴上唯一可用的节点是原始XML中上下文项的父节点
如果要从内部组中访问外部组的分组键,请在调用内部xsl:for each group
指令之前将其放入变量中。我怀疑您希望这样,但您没有明确要求:
<xsl:for-each-group select="DATA" group-by="concat(GROUP_ACCT, '|', GROUP_DESC)">
<tr>
<td><xsl:value-of select="current-grouping-key()"/></td>
</tr>
<xsl:for-each-group select="current-group()" group-by="concat(CHILD_ACCT, '|', CHILD_DESC)">
<tr>
<td><xsl:value-of select="current-grouping-key()"/></td>
</tr>
</xsl:for-each-group>
</xsl:for-each-group>
您可以发布您的预期输出吗?我真的不明白你想做什么。第一个for-each组选择数据元素,然后当for-each组内的上下文成为该组时。您不能从该组中选择数据(您可以,但它不会选择任何内容)。向下投票。再读一遍这个问题:我们理解您的需求的唯一方法是阅读不符合它的代码。