我对XSLT完全不熟悉。下面的输入文件的标记中有重复的值,我的要求是使用XSLT在<PGS>中显示<Rip>的所有重复值。
<Rip>是随机值,它将被复制到另一个标签中。我们需要识别<RIP>标记值与重复项匹配的位置。
如何使用XSLT只显示重复的标记<PGS>?
输入文件:
<?xml version="1.0" encoding="UTF-8"?>
<Rows>
<PGS>
<Rip>93S981371 </Rip>
<Settled>NO</Settled>
<MaturityDate>1/1/2025</MaturityDate>
<RemainingFace>105000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>02R030483 </Rip>
<Settled>YES</Settled>
<MaturityDate>9/8/2025</MaturityDate>
<Remaining-Face>285000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>77344444 </Rip>
<Settled>YES</Settled>
<MaturityDate>9/8/2025</MaturityDate>
<Remaining-Face>285000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>02R030483 </Rip>
<Settled>NO</Settled>
<MaturityDate>9/8/2025</MaturityDate>
<Remaining-Face>285000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>93S981371 </Rip>
<Settled>YES</Settled>
<MaturityDate>1/1/2025</MaturityDate>
<Remaining-Face>405000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
</Rows>预期输出文件:
<?xml version="1.0"?>
<Rows>
<PGS>
<Rip>93S981371 </Rip>
<Settled>NO</Settled>
<MaturityDate>1/1/2025</MaturityDate>
<RemainingFace>105000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>93S981371 </Rip>
<Settled>YES</Settled>
<MaturityDate>1/1/2025</MaturityDate>
<Remaining-Face>405000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
<PGS>
<Rip>02R030483 </Rip>
<Settled>YES</Settled>
<MaturityDate>9/8/2025</MaturityDate>
<Remaining-Face>285000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>
</PGS>
<Rip>02R030483 </Rip>
<Settled>NO</Settled>
<MaturityDate>9/8/2025</MaturityDate>
<Remaining-Face>285000000</RemainingFace>
<CurrentFace>0</CurrentFace>
</PGS>发布于 2014-08-13 13:40:37
你的问题的答案是:
首先定义一个密钥,它通过PGS的Rip值来标识它,例如
<xsl:key name="pgs" match="PGS" use="Rip" />然后匹配(或复制)具有多个“相关”值的PGS元素:
PGS[count(key('pgs', Rip)) > 1]即,它们与自身之外的另一个PGS元素相匹配。
https://stackoverflow.com/questions/25277344
复制相似问题