与子节点内容匹配的xdt转换定位器

时间:2012-03-14 17:39:18

标签: xpath xdt-transform

我在web.config中有以下节点:

<configuration>
...
<scheduling>
 <agent>
  <param desc="database">core</param>
 </agent>
 <agent>
  <param desc="database">master</param>
 </agent>
</scheduling>
...
</configuration>

我想删除包含主内容的子param节点的整个<agent>节点。或多或少我的xdt变换节点如下:

<configuration>
...
<scheduling>
  <agent
         xdt:Transform="Remove"
         xdt:Locator="XPath(./param[@desc='database']/??????)" />
</scheduling>
...
</configuration>

如您所见,我不知道如何与节点内容字符串匹配。我需要在这里添加什么?

环境说明: Windows 7 - visual studio 2010 SP1

1 个答案:

答案 0 :(得分:12)

text()的额外测试添加到定位器中。匹配<param>节点:

xdt:Locator="XPath(./param[@desc='database' and text()='master'])">

编辑:要匹配<agent>节点,您需要将param移动到XPath匹配的谓词中:

xdt:Locator="Condition(param/@desc='database' and param/text()='master')">