我一直在这个圈子里跑来跑去。我想统计至少有一个属性发生变化的工人数量。如果名字发生变化,即1.如果姓氏发生变化,即1.如果两者都发生变化,那就是1.计数至少有一个孩子具有属性的节点
在我的系统中,更改由具有先前值的节点表示 - 类似于下面的(伪):
<!-- XML -->
<Slave_Group>
<Slave>
<Personal>
<First_Name PriorValue="John">Jacob</First_Name>
<Last_Name>Smith</Last_Name>
</Personal>
</Slave>
<Slave>
<Personal>
<First_Name>Mary</First_Name>
<Last_Name PriorValue="Peterson">O'Reilly</Last_Name>
</Personal>
</Slave>
<Slave>
<Personal>
<First_Name PriorValue="Tim">Eric</First_Name>
<Last_Name PriorValue="Heidecker">Wareheim</Last_Name>
</Personal>
</Slave>
</Slave_Group>
下面的XSLT被施加到XML:
<!-- XSLT -->
<variable name="numNameChanges" select="count(//Slave_Group/Slave/Personal/(First_Name[@PriorValue] or Last_Name[@PriorValue]))"/>
我想获得将numNameChanges = 3值。不是这种情况。我在示例文件上运行时遇到了奇怪的结果。我准备使用模板并计算该模板的返回值 - 但我不确定匹配的内容等等......我也想过分组,但我认为我的规范并不复杂,所以需要进入复杂功能。也许我很天真。
有没有办法有条件地计算节点?
希望有一点小问题,但为了政治上的正确性,您可能需要澄清数据的上下文。我非常希望这是某种历史记录。 – Flynn1179