1

つまり、次の web.config xml で、「Elmah」で始まる type 属性を持つすべての要素を削除したいと考えています。

<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>

基本的な変換のいくつかの組み合わせと構造を試しましたが、さまざまなエラーがありました。

<add xdt:Locator="XPath([starts-with(@type,'Elmah.')" xdt:Transform="Remove"/>

あきらめて httpModules 要素全体を削除する前に、XPath は必要ないためです。

4

2 に答える 2

4

XPath ロケーターは完全修飾された XPath の場所を想定しているため、変換は現在どの要素とも一致していません。代わりに Condition Locator (相対 XPath を想定) を使用する場合は、次のように一致する必要があります。

<add xdt:Locator="Condition(starts-with(@type,'Elmah.')" xdt:Transform="RemoveAll"/>

また、 xdt:Transform Remove は最初に一致した要素でのみ動作するため、目的を達成するには RemoveAll を使用する必要があることに注意してください。

msdnの概要は、これを非常によくカバーしています。

于 2012-09-04T22:09:22.627 に答える
1

各モジュールを個別に削除してみましたか?

<add name="ErrorLog" xdt:Locator="Match(name)" xdt:Transform="Remove"/>
<add name="ErrorMail" xdt:Locator="Match(name)" xdt:Transform="Remove"/>
<add name="ErrorFilter" xdt:Locator="Match(name)" xdt:Transform="Remove"/>
于 2012-08-28T19:59:16.930 に答える