给定以下 xml
<Root>
<Employee>
<service>
<Record>xxx</Record>
<Record>yyy</Record>
</service>
<service>
<Record>xxx</Record>
<Record>yyy</Record>
<Record>zzz</Record>
</service>
</Employee>
<Employee>
<service>
<Record>xxx</Record>
<Record>yyy</Record>
</service>
<service>
<Record>xxx</Record>
<Record>yyy</Record>
<Record>zzz</Record>
</service>
</Employee>
</Root>
使用 XSLT1.0,在为每个包含 'xxx'、'yyy'、'zzz'<Employee>
的<Record>
字段转换 xml 时,结果中应该只出现一次
<Root>
<Employee>
<Service>
<Record>xxx</Record>
<Record>yyy</Record>
<Record>zzz</Record>
</Service>
</Employee>
<Employee>
<Service>
<Record>xxx</Record>
<Record>yyy</Record>
<Record>zzz</Record>
<Service>
</Employee>
</Root>
在 Employee 的 for-each 循环中,我厌倦了使用<xsl:if test='not(preceding::./service/Record=$record)'>
. 该测试适用于第一次<Employee>
参加<Record>
for 'xxx','yyy','zzz' 一次。当迭代进入下一个<Employee>
时,测试条件也会检查第一个中的<Record>
值,<Employee>
它发现前面的节点已经存在值'xxx','yyy','zzz',因此我无法获取记录第二个<Employee>
。如何获得<Record>
第二个中的 s <Employee>
。任何帮助深表感谢。
谢谢