我的web.config文件中有一个类似于此结构的自定义部分:
<Messages>
<Message id="1'>
<Property Name="foo" value="bar" />
</Message>
<Message id="2'>
<Property Name="foo" value="bar2" />
</Message>
</Messages>
我想对此应用自定义转换,以便我可以使用Name =“foo”更改Property元素的所有实例的值 - 但我似乎无法使其工作。
我试过了:
<Messages>
<Message>
<Property Name="foo" value="updated" xdt:Locator=Match(Name) xdt:Transform="Replace" />
</Message>
</Mesasges>
我可以通过将Transform = Replace替换为Transform = RemoveAll来移除所有元素 - 任何想法如何实现类似的替换所有值?
答案 0 :(得分:7)
似乎转换:替换仅替换documentation on msdn中的第一个匹配元素: ...如果选择了多个元素,则只替换第一个选定元素。 I通过使用Match-Conditions和SetAttributes的组合解决了这个问题,例如:
<Messages>
<Message>
<Property value="updated" xdt:Locator=Condition(@Name='foo') xdt:Transform="SetAttributes(value)" />
</Message>
</Messages>