【问题标题】:Using two elements for xsl:key key为 xsl:key key 使用两个元素
【发布时间】:2010-07-26 16:38:52
【问题描述】:

我知道如果我有这样的 XML 文件:

 <persons>
   <class name="English">
        <person name="Tarzan" id="050676"/>
        <person name="Donald" id="070754"/>
        <person name="Dolly" id="231256"/>
   </class>
   <class name="Math">
        <person name="Winston" id="050677"/>
        <person name="Donald"  id="070754"/>
        <person name="Fred"    id="231257"/>
   </class>
 </persons>

我可以像这样在 XSL 文件中定义一个键:

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

我使用 id 作为键。然而,Donald 被列出了两次,但在 preg 中只出现在一个地方。

假设我希望他在 preg 中列出两次。也就是说,我想让类名成为标识符的一部分。基本上,我希望 preg 具有等效于有序对的键:(class-name, id)。我该怎么做(使用 XSLT 1.0)?

【问题讨论】:

    标签: xslt xslkey


    【解决方案1】:

    连接键?怎么样

    use="concat(../@name, @id)"
    

    这将有助于将它们在索引中分开。您当然必须使用相同的密钥来检索它们。为了避免任何歧义,我还包括一个不会出现在任何子项中的分隔符,如

    use="concat(../@name, '|', @id)"
    

    这是 Michael Kay 的 XSLT2 参考中推荐的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 2014-06-16
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多