我的CategoryType.xml文档包含大量的以下xml元素(大约7千个)。
另请注意,ATRIBUTE_NAME和ATTIBUTE_CODE组合在这里是唯一的。
<type>
<Category ATRIBUTE_NAME="CDITP" ATTIBUTE_CODE="3">
<referenceCode>1000</referenceCode>
<referenceName>TelephoneNumber</referenceName>
</Category>
<Category ATRIBUTE_NAME="CDMTHDTP" ATTIBUTE_CODE="9">
<referenceCode>1009</referenceCode>
<referenceName>Contact Details</referenceName>
</Category>
-
-
-
</type>
现在,我想使用XSLT开发一个函数,它将输入作为ATRIBUTE_NAME和ATTIBUTE_CODE并返回referenceCode,referenceName
为什么我需要函数,因为我需要在转换xslt中进行大量的转换,因此函数会很方便。
我搜索了互联网,但找不到令人满意的答案。
请帮忙。
答案 0 :(得分:1)
该函数名为key
,您只需定义一个键(https://www.w3.org/TR/xslt-30/#key)
<xsl:key name="cat" match="type/Category" use="ATRIBUTE_NAME, ATTIBUTE_CODE" composite="true"/>
在XSLT 3.0中然后调用例如
key('cat', ('CDITP', '3'))/(referenceCode, referenceName)
返回数据。在XSLT 2.0中,您可以将键定义为
<xsl:key name="cat" match="type/Category" use="concat(ATRIBUTE_NAME, '|', ATTIBUTE_CODE)"/>
然后拨打电话。
key('cat', concat('CDITP', '|', '3'))/(referenceCode, referenceName)