Mat*_*ser 5 .net xpath web-config web-config-transform slowcheetah
我在我的web配置中有以下XML,我想使用web.config转换选择要删除的属性,但我想根据其中一个子元素的值选择要删除的元素.
我的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>
Run Code Online (Sandbox Code Playgroud)
我尝试了以下尝试根据子元素选择第二个代理元素进行删除,<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>
Run Code Online (Sandbox Code Playgroud)
正如在这个问题中回答的那样,xdt:Locator属性需要使用Condition语法.所以选择的选择器是:
<agent type="Sitecore.Tasks.DatabaseAgent"
xdt:Transform="Remove"
xdt:Locator="Condition(param/@desc='database' and param/text()='master')" />
Run Code Online (Sandbox Code Playgroud)