XMLフラグメントがあります
    <node>
            <abc>part_1</abc>
    </node>
    <node>
            <abc>part_2</abc>
    </node>
文字列を無視して、整数部分のみの属性で"part_"指定するにはどうすればよいですか?具体的には、の属性の使用についてサポートが必要です。usexsl:key<key>use
私は次のことを試みました:
<key name="uniq-abc" match='abc' use='substring-after(., '_')/>
しかし、それは機能していません。
ソースXMLは次のとおりです。
    <ppp.PppControlProtocol>
        <shelfId>1</shelfId>
        <snmpPortId>841023490</snmpPortId>
        <controlProtocolType>lCp</controlProtocolType>
        <state>initial</state>
        <lastClearedTime>0</lastClearedTime>
        <restartCount>0</restartCount>
        <deploymentState>0</deploymentState>
        <objectFullName>network:138.120.242.60:ppp:interface-9/1/2.sts12_1:cp-Link</objectFullName>
        <name>cp-Link</name>
    </ppp.PppControlProtocol>
そして、以下の値を使用してIP部分を抽出したい138.120.242.60
    <objectFullName>network:138.120.242.60:ppp:interface-9/1/2.sts12_1:cp-Link</objectFullName>
そして、これがXSLTの中でそれを抽出しようとしている部分です。
    <xsl:key name="uniq-ips" match="objectFullName" use="substring-before(substring-after(., ':'), ':')"/>
キーの使用方法は次のとおりです。
    <xsl:apply-templates select="ppp.PppControlProtocol/objectFullName[generate-id() = generate-id(key('uniq-ips', .)[1])]"/>
    .
    .
    .
    <xsl:for-each select="key('uniq-ips', $currentIP)">