如何在 xslt 中定义一个键,其中"match"和"use"属性都是节点的 chindren



示例:对于这样的 xml,

<persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</persons> 

我会写

<xsl:key name="person-by-id" match="person" use="@id"/>

定义键

如果我的 xml 结构是,

<persons>
<person>
<name>Tarzan</name>
<id>050676</id>
</person>
<person>
<name>Donald</name>
<id>070754</id>
</person>
<person>
<name>Dolly</name>
<id>231256</id>
</person>
</persons> 

我将如何提供匹配和使用的值?

<xsl:key name="person-by-id" match="???" use="???"/>

use值只是相对于match中指示的节点的路径,因此在该 XML 的情况下,它将是:

<xsl:key name="person-by-id" match="person" use="id"/>
<xsl:key name="person-by-id" match="/persons/person" use="id"/>

<xsl:key name="person-by-id" match="person" use="id"/>

匹配将从顶部开始,并与您定义的单词匹配。

最新更新