我有一个 XML 片段
<node>
<abc>part_1</abc>
</node>
<node>
<abc>part_2</abc>
</node>
如何忽略字符串"part_"
并在仅整数部分的use
属性中指定?xsl:key
具体来说,我在使用<key>
'suse
属性方面需要帮助。
我试过以下:
<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)">