【问题标题】:SlowCheetah transforms wrong element in my xmlSlowCheetah 在我的 xml 中转换错误的元素
【发布时间】:2016-04-29 06:41:30
【问题描述】:

我有一个web.config 文件,我想使用SlowCheetah 对其进行转换。相关片段如下所示:

<configuration>
    <location path="ui/cms">
        <system.web>
            <authorization>
                <allow roles="AAA" />
            </authorization>
        </system.web>
    </location>
    <location path="WebServices">
        <system.web>
            <authorization>
                <allow roles="BBB" />
            </authorization>
        </system.web>
    </location>
</configuration>

我想将值BBB 转换为CCC,所以我写了我的Web.CCC.config 转换文件:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <location path="WebServices">
        <system.web>
            <authorization>
                <allow roles="CCC" xdt:Transform="Replace" />
            </authorization>
        </system.web>
    </location>
</configuration>

不幸的是,它导致CCC 被插入到&lt;location path="ui/cms"&gt; 而不是&lt;location path="WebServices"&gt; - 可能是因为它是它在我的web.config 文件中找到的第一个。

如何让 SlowCheetah 注意到不同的 path 参数,并在我的 xml 文件中替换正确的节点?

【问题讨论】:

    标签: asp.net xml visual-studio-2012 slowcheetah


    【解决方案1】:

    事实证明,这可以在转换文件中使用xdt:Locator 获得。

    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
        <location path="WebServices" xdt:Locator="Match(path)>
            <system.web>
                <authorization>
                    <allow roles="CCC" xdt:Transform="Replace" />
                </authorization>
            </system.web>
        </location>
    </configuration>
    

    希望它可以帮助任何人。 Rubber duck debugging 似乎甚至可以使用 SO。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 2011-02-05
      • 2012-10-15
      • 1970-01-01
      • 2015-06-18
      • 2017-12-25
      • 2013-03-20
      • 2012-04-30
      • 2011-07-07
      相关资源
      最近更新 更多