在 RTF BI PUBLISHER 中,在做 for 循环时想打印同级标签?

问题描述 投票:0回答:1
<LEVEL>
 <PARENT>
    <CHILD>A</CHILD>
 </PARENT>
 <SECTOR>1</SECTOR>
 <PARENT>
    <CHILD>B</CHILD>
 </PARENT>
 <SECTOR>2</SECTOR>
 <PARENT>
    <CHILD>C</CHILD>
 </PARENT>
 <SECTOR>3</SECTOR>
</LEVEL>

你好,我正在为每个 "PARENT "做for循环,但也想打印每个循环的SECTOR。我试着做了.SECTOR,但它重复打印同一个SECTOR。

所需的输出。

         CHILD              SECTOR

第一循环: 第12个循环:A B 第23次循环。 C 3

目前我得到的输出。

         CHILD              SECTOR

第一环: 第十二环: B 第十三次循环: C 1

能否请您帮忙建议一下?

xml rtf bi-publisher
1个回答
0
投票

似乎你是根据PARENT元素和SECTOR元素在XML中出现的顺序,这并不理想。如果PARENT元素与SECTOR元素相关,其中一个元素应该在另一个元素中。

说到这里,你可以像这样选择元素的迭代。

<?SECTOR[1]?> 

其中1是第一次迭代。 所以如果你使用[2],它将选择第二次迭代的值。但你希望这是动态的,所以我们不能硬编码迭代次数。

结合一个变量来计算你所处的迭代次数,这就是解决方案。

<?for-each:LEVEL?>
<?xdoxslt:set_variable($_XDOCTX,'COUNTER', 1)?>
<?for-each:PARENT?>
Child: <?CHILD?>
Sector:<?../SECTOR[xdoxslt:get_variable($_XDOCTX, 'COUNTER')]?>
<?xdoxslt:set_variable($_XDOCTX, 'COUNTER', xdoxslt:get_variable($_XDOCTX, 'COUNTER') + 1)?>
<?end for each?> 
<?end for each?>

我强烈建议改变XML来解决你的问题 而不是依靠元素的正确顺序。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.