Я боролся с правильным синтаксисом для этого, и он сводится к:
Как проверить, имеет ли атрибут родительского узла определенное значение?
Я трансформирую немного XHTML. Я соответствую шаблону <tr>
, чтобы переформатировать атрибуты colspan
некоторых ячеек в этой строке. Чтобы добавить дополнительную уверенность, что это произойдет только в определенных таблицах, мне нужно проверить, что <table>
, к которому принадлежит <tr>
, имеет определенное значение атрибута id.
<xsl:template match="tr">
<tr>
<xsl:choose>
<xsl:when test="(count(td[@colspan='2'])=2 and count(td)=3)">
<td colspan="1">
<xsl:copy-of select="td[1]/node()" />
</td>
<td colspan="4">
<xsl:copy-of select="td[2]/node()" />
</td>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="@*|node()" />
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
Вот код, который у меня есть. Мне либо нужно добавить дополнительные «и» к моему при тестировании, либо другой xsl:if
или xsl:when
, чтобы проверить атрибут таблицы. Для этого примера, давайте иметь таблицу id = "Transformable".
Для пояснения, я хочу выполнять вышеуказанное преобразование только тогда, когда таблица, к которой принадлежит <tr>
, имеет идентификатор "Transformable".
Любая помощь будет принята с благодарностью.