Преобразование файла конфигурации без атрибутов ключа или имени
Я хочу преобразовать некоторые атрибуты, но не могу добавить атрибут 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>