Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 每个组嵌入的每个组的父级中的XSL 2.0参考值_Xml_Xslt_Xslt 2.0 - Fatal编程技术网

Xml 每个组嵌入的每个组的父级中的XSL 2.0参考值

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> &

我有这样的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>
  <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组内的上下文成为该组时。您不能从该组中选择数据(您可以,但它不会选择任何内容)。向下投票。再读一遍这个问题:我们理解您的需求的唯一方法是阅读不符合它的代码。