Xslt - 强制实现@attribute唯一性

时间:2009-12-11 21:08:27

标签: xslt attributes unique

我很少使用xslt,所以我不是最好的,但是,我想知道如何解决这个问题:

<Element>
   <childElement type="type1">Bob</childElement>
   <childElement type="type1">Smith</childElement>
   <childElement type="type2">Bob</childElement>
</Element>"

我想强制执行@type唯一性,如果它们具有相同的@type,我将抓住其中一个ChildElements。不同的@types可以具有相同的值(在此示例中,2个Bobs可以正常)。有关如何在xslt中解决此问题的任何帮助吗?

1 个答案:

答案 0 :(得分:4)

这是一个只捕获唯一@type值的XPath ...

//childElement[not(@type=preceding::childElement/@type)]

...你的例子的结果是......

Location: 3:5
Description: /Element[1]/childElement[1] - Bob
Location: 5:5
Description: /Element[1]/childElement[3] - Bob