2016-01-22 33 views
0

我有一個web.config文件,我想使用SlowCheetah進行轉換。有關片段看起來是這樣的:SlowCheetah transfroms我的xml中的錯誤元素

<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> 

我想變換值BBBCCC,所以我寫了我的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插入<location path="ui/cms">代替<location path="WebServices"> - 可能是因爲它是我在web.config文件中找到的第一個。

如何讓SlowCheetah注意到不同的path參數,並在我的xml文件中替換正確的節點?

回答

0

事實證明,這可以通過在轉換文件中使用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> 

希望它可以幫助任何人。即使是SO,Rubber duck debugging似乎也能工作。