2015-01-15 5 views

ответ

0

Использование

<xsl:template match="a"> 
    <xsl:value-of select="count(@*)"/> 
</xsl:tempate> 
4

Просто count(@*) для любого элемента.

XML Input

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <a b="12" c="13"/> 
    <b d="14"/> 
</root> 

стилевых

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="text" encoding="UTF-8"/> 

    <xsl:strip-space elements="*"/> 

    <xsl:template match="*"> 
     <xsl:text>Attribute count for element named "</xsl:text> 
     <xsl:value-of select="name()"/> 
     <xsl:value-of select="concat('&quot;: ', count(@*))"/> 
     <xsl:text>&#10;</xsl:text> 
     <xsl:apply-templates/> 
    </xsl:template> 

</xsl:transform> 

Текст Выходной

Attribute count for element named "root": 0 
Attribute count for element named "a": 2 
Attribute count for element named "b": 1 
Смежные вопросы