<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
能否请您帮忙建议一下?
似乎你是根据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来解决你的问题 而不是依靠元素的正确顺序。