5

Web 構成に次の XML があり、web.config 変換を使用して削除する属性を選択したいのですが、子要素の 1 つの値に基づいて削除する要素を選択したいと考えています。

私のweb.configは次のようなものです:

<configuration>
   <sitecore>
       <scheduling>
          <agent type="Sitecore.Tasks.DatabaseAgent">
             <param desc="database">core</param>
          </agent>
          <agent type="Sitecore.Tasks.DatabaseAgent">
             <param desc="database">master</param>
          </agent>
       </scheduling>
    </sitecore>
 </configuration>

子要素に基づいて削除する 2 番目のエージェント要素を選択しようとしました<param desc="database">master</param>が、成功しませんでした。

<configuration>
   <sitecore>
       <scheduling>
          <!-- Attempt 1 -->
          <agent type="Sitecore.Tasks.DatabaseAgent"
                 xdt:Transform="Remove"
                 xdt:Locator="XPath(configuration/sitecore/scheduling/agent/param[text()='master'])"/>

          <!-- Attempt 2 -->
          <agent type="Sitecore.Tasks.DatabaseAgent"
                 xdt:Transform="Remove">
             <param desc="database"
                    xdt:Locator="XPath([text()='master'])"/>
          </agent>
       </scheduling>
    </sitecore>
 </configuration>
4

3 に答える 3

6

この質問で回答されているように、xdt:Locator属性はCondition構文を使用する必要があります。したがって、必要なセレクターは次のとおりです。

<agent type="Sitecore.Tasks.DatabaseAgent"
       xdt:Transform="Remove"
       xdt:Locator="Condition(param/@desc='database' and param/text()='master')" />
于 2013-02-06T14:41:40.413 に答える
2

Sitecores独自の構成パッチャーを使用するだけです。これにより、設定が削除されます。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <scheduling>
       <agent patch:instead="*[@type='Sitecore.Tasks.DatabaseAgent' and param='master']">
       </agent>
    </scheduling>
 </sitecore>
</configuration>

詳細については、こちらをご覧ください。

http://intothecore.cassidy.dk/2009/05/working-with-webconfig-include-files-in.html http://www.thescrewballdivision.com/playing-with-sitecore-include-files

于 2013-02-06T07:01:44.430 に答える
-1

最後に追加/..するだけで、それでうまくいくはずです..

例えば

XPath(configuration/sitecore/scheduling/agent/param[text()='master']/..)
于 2013-02-06T00:00:47.490 に答える