设置:我正在使用 XPath 2.0。但在 Altova Stylevision 内部,请稍后查看我的评论。
我有以下 XML 结构:
<?xml version="1.0" encoding="UTF-8"?>
<entries>
<bla>
<blub>222</blub>
</bla>
<bla>
<blub>222</blub>
</bla>
<bla>
<blub>123</blub>
</bla>
<bla>
<blub>234</blub>
</bla>
<bla>
<blub>123</blub>
<!--I want to find the number of distinct elements before the first occurance of a blub element with the same value as the current node - so for this node the result should be one (two times 222 before the first appearance of 123)-->
</bla>
</entries>
在解析我的文件时,我想在每次出现 blub 时知道:在第一次出现与当前节点具有相同值的 blub 之前,有多少个不同的 blub 值。
所以基本上首先确定与当前节点具有相同值的blub的第一次出现在哪里,然后计算出之前不同blub的数量。
我的问题之一是 Altova 不支持 current() 函数。引用:“请注意,current() 函数是 XSLT 函数,而不是 XPath 函数,因此不能在 StyleVision 的自动计算和条件模板中使用。要在表达式中选择当前节点,请使用 XPath 2.0 的 for 表达式。 "
所以任何没有 current() 函数的解决方案都会很棒;)
谢谢大家!
斯蒂沃