Как применить два разных преобразования к одному элементу web.config?

В моем проекте развертывания VS2010 я хотел бы применить два разных преобразования к двум различным атрибутам одного элемента в моем web.config. Рассмотрим следующий фрагмент web.config:

<exampleElement attr1="false" attr2="false" attr3="true" attr4="~/" attr5="false">
  <supportedLanguages>
    <!-- Some more elements here -->
  </supportedLanguages>
</exampleElement>

Как теперь изменить атрибут attr1 и удалить атрибут attr5 в преобразованном файле web.config? Я знаю, как выполнять индивидуальные преобразования:

<exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>

и:

<exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>

Но я не знаю, как совместить эти преобразования. Кто-нибудь?

РЕДАКТИРОВАТЬ:

Пока не могу ответить на свой вопрос, но решение, похоже, таково:

Кажется, что можно повторить один и тот же элемент с разными преобразованиями, например:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>
    <exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>
</configuration>

Как уже говорилось, похоже, что это работает, но я не уверен, является ли это предполагаемым использованием синтаксиса преобразования web.config.


person Marco G    schedule 20.01.2012    source источник
comment
Это правильно, поскольку я использовал XmlTransforms. Думаю, вы ответили на этот вопрос :)   -  person Nick Nieslanik    schedule 20.01.2012


Ответы (2)


Как подтвердил Ник Нисланик, это делается путем повторения одного и того же элемента с разными преобразованиями, например:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>
    <exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>
</configuration>
person Marco G    schedule 21.01.2012
comment
Этот вопрос касается применения разных преобразований к разным атрибутам одного элемента, что является немного разной ситуацией. - person Marco G; 27.03.2017

Я использую инструмент XmlPreprocess для преобразования и управления файлами конфигурации. Он использует один файл сопоставления для нескольких сред. Вы можете редактировать файл сопоставления в Excel. Это очень простой в использовании. Вы можете обновить свои файлы конфигурации с помощью xmlpreprocess и использовать конфигурацию (debug, dev, prod, ...) в качестве параметра для другой настройки ...

person Ludwo    schedule 21.01.2012
comment
Похоже, это действительно очень мощный способ преобразования, но сейчас он может быть немного излишним для моих нужд. - person Marco G; 21.01.2012