В XSL, как подсчитать количество атрибутов узла?Как подсчитать количество атрибутов узла?
Например:
<a/>
имеет нулевой атрибут.
<a foo="1"/>
имеет один атрибут.
<a foo="1" bar="2"/>
имеет два атрибута.
В XSL, как подсчитать количество атрибутов узла?Как подсчитать количество атрибутов узла?
Например:
<a/>
имеет нулевой атрибут.
<a foo="1"/>
имеет один атрибут.
<a foo="1" bar="2"/>
имеет два атрибута.
Использование
<xsl:template match="a">
<xsl:value-of select="count(@*)"/>
</xsl:tempate>
Просто 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('": ', count(@*))"/>
<xsl:text> </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