XDT配置转换 - ReplaceAll?

Sea*_*ord 6 app-config config web-config visual-studio-2010 xdt-transform

我的web.config文件中有一个自定义部分,类似于这个结构:

<Messages>
  <Message id="1'>
     <Property Name="foo" value="bar" />
  </Message>
  <Message id="2'>
     <Property Name="foo" value="bar2" />
  </Message>
</Messages>
Run Code Online (Sandbox Code Playgroud)

我想对此应用自定义转换,以便我可以使用Name ="foo"更改Property元素的所有实例的值 - 但我似乎无法使其工作.

我试过了:

<Messages>
  <Message>
     <Property Name="foo" value="updated" xdt:Locator=Match(Name) xdt:Transform="Replace" />
  </Message>
</Mesasges>
Run Code Online (Sandbox Code Playgroud)

我可以通过用Transform = RemoveAll替换Transform = Replace来删除所有元素 - 任何想法如何实现类似的替换所有值?

Emi*_*l G 7

看起来像Transform:Replace只替换msdn文档中的第一个匹配元素:...如果选择了多个元素,则只替换第一个选定元素.我通过使用Match-Conditions和SetAttributes的组合解决了这个问题,例如:

<Messages>
  <Message>
    <Property value="updated" xdt:Locator=Condition(@Name='foo') xdt:Transform="SetAttributes(value)" />
  </Message>
</Messages>
Run Code Online (Sandbox Code Playgroud)