2009-12-11 49 views
1

我很少用XSLT的工作,所以我不是最大的,但是,我不知道如何去解決這個問題:XSLT - 強制@attribute獨特

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

我想執行@type唯一性,如果他們具有相同的@type,我只需抓住ChildElements中的一個。不同的@types可以有相同的值(在這個例子中,2個Bobs可以)。任何幫助如何解決這個在xslt?

+0

雖然你可以做一些驗證中XSLT,這通常使用xml模式(xsd)完成。看看xs:unique和xs:key/xs:keyref – el2iot2 2009-12-11 21:24:54

回答

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 
+0

太棒了!我從來沒有用過xpath,只是非常基本的xslt轉換。感謝一堆答案! – Cochese 2009-12-11 21:31:04