С учетом следующего кода:
<database>
<table name="table1">
<column name="id"/>
<column name="created_at"/>
</table>
<table name="table2">
<column name="id"/>
<column name="updated_at"/>
</table>
</database>
Я хочу иметь возможность проверить с помощью ключа xsl: если у конкретной таблицы есть определенный столбец по имени. Например, я хочу знать, есть ли в таблице столбец create_at, чтобы я мог написать конкретный код в преобразовании.
Я получил общий ключ, который будет проверять, есть ли в любой таблице заданный столбец по имени, но не выяснил, как сделать ее специфичной для таблицы, с которой в данный момент работает преобразование. 1008 *
<xsl:key name="columnTest" match="column" use="@name"/>
<xsl:for-each select="database/table">
<xsl:choose>
<xsl:when test="key('columnTest', 'created_at')">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
Так что я получаю «true» для всех таблиц. Любое руководство будет оценено.