在XSLT2.0中的键后获取值
以我的XML为例:在XSLT2.0中的键后获取值,xslt,xslt-2.0,Xslt,Xslt 2.0,以我的XML为例: <Data>/Keys1/ABCD/keys4/KLDS111/keys2/88888/keys5//ID/34234/keys5/Sample</Data> /Keys1/ABCD/keys4/KLDS111/keys2/88888/keys5//ID/34234/keys5/Sample 我需要得到每个键后的值。钥匙可以按任何顺序排列,以下是我需要检查的钥匙: /键1/ /键2/ /键4/ /键5//ID/ /键5/ 我的预期输出: <
<Data>/Keys1/ABCD/keys4/KLDS111/keys2/88888/keys5//ID/34234/keys5/Sample</Data>
/Keys1/ABCD/keys4/KLDS111/keys2/88888/keys5//ID/34234/keys5/Sample
我需要得到每个键后的值。钥匙可以按任何顺序排列,以下是我需要检查的钥匙:
- /键1/
- /键2/
- /键4/
- /键5//ID/
- /键5/
<Data>
<DGH_hdj>ABCD</DGH_hdj>
<hdu_pd>
<hdu>KLDS111</hdu>
<ydhf>88888</ydhf>
</hdu_pd>
<oOo>34234</oOo>
<pio>Sample</pio>
</Data>
ABCD
KLDS111
88888
34234
样品
在我的示例文件中,我需要获取每个键之间的值。我在想
使用数组并获取每个键的索引。但是,问题是我不知道
知道如何应用该逻辑,因为我对XSLT还不熟悉
非常感谢您的反馈。以下是如何提取
键2的值:
<xsl:template match="Data">
<xsl:variable name="t" select="tokenize(., '/')" />
<result>
<xsl:value-of select="$t[index-of($t, 'keys2') + 1]"/>
</result>
</xsl:template>
演示:
注意,XML是区分大小写的。我认为,您的方法是好的;请注意,在XSLT中,数组称为序列。首先,标记您的字符串,将其存储在序列中,并使用regex检索键。