Как использовать 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> элемент со всеми свойствами, смешанными вместе.

0 ответов

Другие вопросы по тегам