как узнать, существует или нет атрибут в XSL.
Как узнать, существует или нет атрибут в XSL
Ответ 1
Просто используйте:
<xsl:template match="someElement/@someAttrName">
<!-- Whatever specific work when someElement has @someAttrName -->
</xsl:template>
<xsl:template match="someElement[not(@someAttrName)]">
<!-- Whatever specific work when someElement has no @someAttrName -->
</xsl:template>
Обратите внимание. В хорошо написанном XSLT-коде количество условных инструкций (например, <xsl:choose>
, <xsl:when>
, <xsl:otherwise>
, <xsl:if>
,... и т.д.). близко к нулю. В этом решении оно равно 0.
Ответ 2
<xsl:choose>
<xsl:when test="element/@attribute">
do one thing
</xsl:when>
<xsl:otherwise>
do something else
</xsl:otherwise>
</xsl:choose>
Ответ 3
<xsl:value-of select="element[not(@attribute)]"/>
если нужно выбрать какой-либо элемент без атрибута