Преобразование файла конфигурации без атрибутов ключа или имени

Я хочу преобразовать некоторые атрибуты, но не могу добавить атрибут name или key для использования xdt:Locator="Match(name)" или xdt:Locator="Match(key)".

Например, я мог бы иметь:

<parentElement>
    <children>
        <add key="ExampleKey">
            <thing attribute="blablabla"></thing>
        </add>
    </children>
</parentElement>

Как я могу заменить атрибут вещи "blablabla" другим значением?

ОБНОВЛЕНИЕ 1: в дополнение к этому, я не могу вставить другие атрибуты в разметку "вещь", потому что она выдает некоторые ошибки через DLL, которая использует атрибут.

ОБНОВЛЕНИЕ 2: кажется, что я должен был использовать SlowCheetah, и тогда это работало хорошо. Благодаря предварительному просмотру я обнаружил, что могу добавить xdt: Transform = "Replace" к родительскому элементу, вот так:

<parentElement xdt:Transform="Replace">
    <children>
        <add key="ExampleKey">
            <thing attribute="blablabla"></thing>
        </add>
    </children>
</parentElement>

И теперь это работает отлично!:)

1 ответ

Вы можете найти элемент, используя выражение XPath с Condition локатор вместо Match, как описано в документации. т.е.

<?xml version="1.0" encoding="utf-8"?>
<parentElement xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <children>
    <add>
      <thing attribute="falala" xdt:Transform="SetAttributes" xdt:Locator="Condition(@attribute = 'blablabla')"></thing>
    </add>
  </children>
</parentElement>
Другие вопросы по тегам