Я полагаю, что вы, возможно, немного осмысливаете XSL здесь.Звучит так, как будто вы представляете это процедурно, т. Е. «Как мне выразить« Делать X в Y »», а не «Что является отображением из структуры X в структуру Y», каковым является XSL.
Вам понадобится что-то вроде:
<xsl:for-each select="//a">
<xsl:copy>
<xsl:for-each select="b">
<xsl:copy>
<xsl:attribute name="c">
<xsl:value-of select="$D"/>
</xsl:attribute>
</xsl:copy>
</xsl:for-each
</xsl:copy>
</xsl:for-each>
(Примечание: синтаксис «$ D» указывает на разыменование переменной, т.е. «вставьте значение переменной D». Я предполагаю, что это то, что вы хотите, новы можете получить D откуда угодно.)
Итак, вам не нужно указывать XSL «добавить c» или «удалить e».Вы говорите ему, что должно быть там, а иначе ничего не происходит.