локатор преобразования xdt, соответствующий содержимому подузла - PullRequest
12 голосов
/ 14 марта 2012

У меня есть следующий узел в web.config:

<configuration>
...
<scheduling>
 <agent>
  <param desc="database">core</param>
 </agent>
 <agent>
  <param desc="database">master</param>
 </agent>
</scheduling>
...
</configuration>

Я хочу удалить весь узел <agent> с дочерним узлом param с основным содержимым.Более или менее мой узел преобразования xdt выглядит так:

<configuration>
...
<scheduling>
  <agent
         xdt:Transform="Remove"
         xdt:Locator="XPath(./param[@desc='database']/??????)" />
</scheduling>
...
</configuration>

Как вы видите, я понятия не имею, как сопоставить строку содержимого узла.Что мне нужно добавить сюда?

примечания к среде: Windows 7 - Visual Studio 2010 SP1

1 Ответ

12 голосов
/ 14 марта 2012

Добавьте дополнительный тест для text() в локатор.Чтобы соответствовать узлу <param>:

xdt:Locator="XPath(./param[@desc='database' and text()='master'])">

РЕДАКТИРОВАТЬ: Чтобы соответствовать узлу <agent>, вам нужно переместить param в предикат, что XPath соответствует:

xdt:Locator="Condition(param/@desc='database' and param/text()='master')">
...