【问题标题】:count all distinct attributes with xslt使用 xslt 计算所有不同的属性
【发布时间】:2012-03-09 21:27:58
【问题描述】:

我有一个包含一些属性的 xsl 文档,我必须按名称计算此文档中唯一属性的数量。

例如xml:

<Collection>
  <item>
    <Id attr1="value1">123</Id>
    <property>u1</property>
  </item>  
  <item>
    <Id>1234</Id>
    <property>u2</property>
  </item>
  <item attr1="value11">
    <Id>12345</Id>
    <property>u3</property>
  </item>
  <item attr2="value2">
    <Id>123456</Id>
    <property attr3="value3">u4</property>
  </item>
</Collection>

有 4 个属性,但 attr1 是重复的,所以答案是 3。 我有兴趣用 xslt 1.0 来做。

现在我有这样的东西,但是不能做计数器

<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:key name="node" match="@*" use="local-name()"/>

<xsl:template match="/">
<xsl:for-each select="//@*"> 
    <xsl:variable name="name" select="local-name()"/>
    <xsl:if test="generate-id(.) = generate-id(key('node', $name))">
       <!-- increment counter? -->
    </xsl:if>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

谢谢

【问题讨论】:

    标签: xslt counter xslt-1.0


    【解决方案1】:
       <xsl:value-of select="count(//@*[generate-id(.) = generate-id(key('node', local-name()))])"/>
    

    【讨论】:

    • 谢谢,这正是我想要做的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多