Если я вас правильно понял, вы спрашиваете не об удалении узлов комментариев, а об их анализе и преобразовании в элементы. Вы можете сделать это с XSLT 2.0 и возможностями регулярных выражений, но я не думаю, что это хорошая идея (не очень надежная).
XSLT может помочь вам в любом случае, но сначала вы должны создать скелет для вашего файла конфигурации. Давайте представим что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
...
<Storage/>
...
</configuration>
Ваш XSLT может выглядеть так:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="service" select="'OracleService'"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Storage">
<xsl:copy>
<xsl:copy-of select="@*"/>
<StorageDb database="{$service}"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Поведение по умолчанию выбирает значение OracleService
для параметра service
. Это поведение можно переопределить, передав другое значение в XSLT для этого параметра.
Результат по умолчанию:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<Storage><StorageDb database="OracleService"/></Storage>
...
</configuration>