.net xml转换定位器匹配未按预期工作

.net xml转换定位器匹配未按预期工作,.net,transform,config,.net,Transform,Config,我有一个配置文件,其中包含以下几种数据库配置: <databases> <!-- core --> <database id="core"> ... </database> <!-- master --> <database id="master"> ... </database> <!-- web --> <

我有一个配置文件,其中包含以下几种数据库配置:

<databases>
    <!-- core -->
    <database id="core">
    ...
    </database>
    <!-- master -->
    <database id="master">
    ...
    </database>   
    <!-- web -->
    <database id="web">
    ...
    </database>
    <!-- file system -->
    <database id="filesystem">
    ...
    </database>     
</databases>
<databases>
    <database id="web" xdt:Transform="Replace" xdt:locator="Match(id)" >
    ...
    </database>     
</databases>

...
...
...
...
我有一个像这样的转换文件:

<databases>
    <!-- core -->
    <database id="core">
    ...
    </database>
    <!-- master -->
    <database id="master">
    ...
    </database>   
    <!-- web -->
    <database id="web">
    ...
    </database>
    <!-- file system -->
    <database id="filesystem">
    ...
    </database>     
</databases>
<databases>
    <database id="web" xdt:Transform="Replace" xdt:locator="Match(id)" >
    ...
    </database>     
</databases>

...

我期望发生的是web节点将被调出,但实际发生的是它正在调出列表中的第一个节点。我通过改变节点顺序的方法解决了这个问题,因为web配置是我们唯一改变的配置,但我想知道为什么会发生这种情况。

变换属性名称区分大小写,因此忽略了
定位器。请尝试使用定位器

变换属性名称区分大小写,因此忽略
locator
。试试定位器,这样就成功了!真不敢相信这是件如此愚蠢的事。想把它作为一个答案,这样我就可以标记它正确吗?