我正在根据环境转换web.config文件中appsettings的值。当有相同名称但大小写不同的键时,我遇到了一个问题,示例如下
本地值
<add xdt:Transform="RemoveAll" xdt:Locator="Match(key)" key="LOGINURL" value="xyf" />
开发价值
<add xdt:Transform="RemoveAll" xdt:Locator="Match(key)" key="LoginUrl" value="abcd" />
我想不区分大小写地替换键的值。
蒂亚
您可以将 XPath 与 Condition
定位器一起使用,而不是 Match
。使用这里描述的关于在 XPath 中构建不区分大小写匹配的技巧,您可以编写以下内容:
<add xdt:Transform="RemoveAll" xdt:Locator= "Condition(translate(@key,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='loginurl')"/>
key
和 value
属性是无用的,因为元素已被移除。
要编辑元素,请使用 SetAttributes
来保持键不变。
<add xdt:Transform="SetAttributes" xdt:Locator="Condition(translate(@key,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='loginurl')" value="test.com" />
我在这里测试了所有这些。