考虑我的XML:
<Data>/Keys1/ABCD/keys4/KLDS111/keys2/88888/keys5//ID/34234/keys5/Sample</Data>
我需要在每个键后获取值。密钥可以是任何顺序,这是我需要检查的密钥:
我的预期输出:
<Data>
<DGH_hdj>ABCD</DGH_hdj>
<hdu_pd>
<hdu>KLDS111</hdu>
<ydhf>88888</ydhf>
</hdu_pd>
<oOo>34234</oOo>
<pio>Sample</pio>
</Data>
在我的示例文件中,我需要获取每个键之间的值。我在想 使用数组并获取每个键的索引。但是,问题在于我不是 我知道如何应用这个逻辑,因为我对XSLT还不熟悉。
非常感谢您的反馈。
答案 0 :(得分:1)
以下是如何提取keys2
的价值:
<xsl:template match="Data">
<xsl:variable name="t" select="tokenize(., '/')" />
<result>
<xsl:value-of select="$t[index-of($t, 'keys2') + 1]"/>
</result>
</xsl:template>
P.S。请注意,XML区分大小写。