私にとってより良い方法は、特定の属性のみを設定しているため、要素が存在しない場合にのみ要素を挿入することでした。要素を削除すると、メイン要素の他の属性が存在する場合は破棄されます。
例: web.config (要素なし)
<serviceBehaviors>
<behavior name="Wcf.ServiceImplementation.AllDigitalService_Behavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
web.config (要素あり)
<serviceBehaviors>
<behavior name="Wcf.ServiceImplementation.AllDigitalService_Behavior">
<serviceDebug httpsHelpPageEnabled="true" />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
Locator と XPath 式を使用して、ノードが存在しない場合はノードを追加し、属性を設定します。
<serviceDebug xdt:Transform="Insert"
xdt:Locator="XPath(/configuration/system.serviceModel/behaviors/serviceBehaviors/behavior[not(serviceDebug)])" />
<serviceDebug includeExceptionDetailInFaults="true" xdt:Transform="SetAttributes" />
結果の両方の web.config ファイルには includeExceptionDetailInFaults="true" があり、2 番目のファイルには httpsHelpPageEnabled 属性が保持されますが、削除/挿入メソッドでは保持されません。