xml 变换定位器匹配未按预期工作

xml transform locator match not working as expected

我有一个配置文件,其中包含多个数据库配置,如下所示:

<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 被忽略。请尝试 Locator