Как использовать XDT-преобразование для изменения имени элемента (app.config)?
У меня есть app.config, который преобразуется с помощью XDT-преобразования для целей Octopus. Но это не так важно. Проблема в том, что, хотя я знаю, как заменить некоторые значения атрибута, используя различные методы селектора, я понятия не имею, как изменить имя элемента XML. Вот пример:
<ftpConnections>
<sftp
name="Conn1"
host="ftp.xxxx.xx"
userName="xxxx"
password="xxxxx" />
<ftps
name="Conn2"
host="ftp.xxxx.xx"
port="21"
userName="xxxx"
password="xxxxx"
sslProtocols="Tls11,Tls12"
encryptionMode="Explicit"
x509CertPath=""
dataConnectionType="PASV"
timeout="30000"
retryCount="8" />
</ftpConnections>
В настоящее время я предполагаю, что все элементы имеют тип sftp, поэтому я использовал преобразование:
<ftpConnections>
<sftp
name="Conn1"
host="#{Sftp.Conn1.Host}"
userName="#{Sftp.Conn1.UserName}"
password="#{Sftp.Conn1.Password}"
timeout="#{Sftp.Conn1.Timeout}"
retryCount="#{Sftp.Conn1.RetryCount}"
xdt:Transform="SetAttributes(host,userName,password,timeout,retryCount)"
xdt:Locator="Condition(@name='Conn1')" />
<sftp <!-- problem here - how to replace it to a parametrized value? (ftps,ftp or sftp)? -->
name="Conn2"
host="#{Sftp.Conn2.Host}"
userName="#{Sftp.Conn2.UserName}"
password="#{Sftp.Conn2.Password}"
timeout="#{Sftp.Conn2.Timeout}"
retryCount="#{Sftp.Conn2.RetryCount}"
xdt:Transform="SetAttributes(host,userName,password,timeout,retryCount)"
xdt:Locator="Condition(@name='Conn2')" />
</ftpConnections>
Я предпочел бы сохранить структуру конфигурации (без выравнивания к общему <ftp>
элемент со всеми свойствами, смешанными вместе.