2010-07-26 69 views
3

我知道,如果我有這樣的XML文件:使用XSL的兩個元素:鍵鍵

<persons> 
    <class name="English"> 
     <person name="Tarzan" id="050676"/> 
     <person name="Donald" id="070754"/> 
     <person name="Dolly" id="231256"/> 
    </class> 
    <class name="Math"> 
     <person name="Winston" id="050677"/> 
     <person name="Donald" id="070754"/> 
     <person name="Fred" id="231257"/> 
    </class> 
</persons> 

我可以這樣定義在XSL文件的關鍵:

<xsl:key name="preg" match="person" use="@id"/> 

哪裏我使用ID作爲關鍵。然而,唐納德列舉了兩次,但只是在一個地方preg。

假設我希望他在preg中列出兩次。也就是說,我想讓類名稱成爲標識符的一部分。基本上,我想preg有相當於有序對的鍵:(class-name,id)。我該怎麼做(使用XSLT 1.0)?

+0

XSLT 1.0或2.0? – 2010-07-26 17:43:24

回答

6

連接鍵?如何

use="concat(../@name, @id)" 

這將有助於使他們在索引中分開。你當然必須使用相同的密鑰來檢索它們。爲了避免任何含糊之處我還包括將不在任子項中出現一個分隔符,如

use="concat(../@name, '|', @id)" 

這是Michael Kay的XSLT2參考推薦的方法。