【发布时间】:2020-03-12 02:33:47
【问题描述】:
是的。会计:|
我有一组会计分录;它们成对出现——1 个借方和 1 个贷方。这两个条目共享相同的<SequenceID>。如果其中一个条目引用帐户 1111,我想要两个条目。
我正在使用的(非工作)查询(我大致基于 [XPath. Select nodes based on an other, related node)是:
GLPostings/GLTransaction[GLPostings/GLTransaction[AccountCode = '1111']/SequenceID = SequenceID]
但我收到“返回空序列”。
如果我测试部分查询:GLPostings/GLTransaction[AccountCode = '1111']/SequenceID 我会按预期获得多个 SequenceID。那么...如何将这些多个 SequenceID 转换为我所追求的节点集?
这是一些测试数据:
<?xml version="1.0" encoding="UTF-8"?>
<GLPostings>
<GLTransaction RowNumber="1">
<CRDR>Dr</CRDR>
<SequenceID>616</SequenceID>
<AccountCode>5531</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="2">
<CRDR>Cr</CRDR>
<SequenceID>616</SequenceID>
<AccountCode>2118</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="3">
<CRDR>Dr</CRDR>
<SequenceID>617</SequenceID>
<AccountCode>1111</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="4">
<CRDR>Cr</CRDR>
<SequenceID>617</SequenceID>
<AccountCode>1234</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="5">
<CRDR>Dr</CRDR>
<SequenceID>618</SequenceID>
<AccountCode>1231</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="6">
<CRDR>Cr</CRDR>
<SequenceID>618</SequenceID>
<AccountCode>1231</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="7">
<CRDR>Dr</CRDR>
<SequenceID>619</SequenceID>
<AccountCode>2341</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="8">
<CRDR>Cr</CRDR>
<SequenceID>619</SequenceID>
<AccountCode>1111</AccountCode>
</GLTransaction>
</GLPostings>
我想得到的是:
<GLTransaction RowNumber="3">
<CRDR>Dr</CRDR>
<SequenceID>617</SequenceID>
<AccountCode>1111</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="4">
<CRDR>Cr</CRDR>
<SequenceID>617</SequenceID>
<AccountCode>1234</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="7">
<CRDR>Dr</CRDR>
<SequenceID>619</SequenceID>
<AccountCode>2341</AccountCode>
</GLTransaction>
<GLTransaction RowNumber="8">
<CRDR>Cr</CRDR>
<SequenceID>619</SequenceID>
<AccountCode>1111</AccountCode>
</GLTransaction>
非常感谢任何提示。
编辑: 我可以这样解决问题:
<xsl:for-each select="/GLPostings/GLTransaction[AccountCode = 1111']/SequenceID">
<xsl:variable name="Seq" select="."/>
<xsl:for-each select="/GLPostings/GLTransaction[SequenceID = $Seq]">
<xsl:call-template name="output-row">
</xsl:call-template>
</xsl:for-each>
</xsl:for-each>
但它似乎有点……脏。
【问题讨论】: