XDT Transform: InsertBefore - Locator Condition is ignored

后端 未结 1 794
小蘑菇
小蘑菇 2020-12-09 15:55

I have a web.config file in which I need to either insert the element or manipulate children of that node if it already exists.
If

1条回答
  •  独厮守ぢ
    2020-12-09 16:37

    So after facing the same issue, I came up with a solution. It's not pretty nor elegant, but it works. (At least on my machine)

    I just split the logic into 3 different statements. First, I add an empty configSections at the correct position (first). Then I insert the new config to the last configSections, which would be the new one if it is the only one, or a previously existing one otherwise. Lastly I remove any empty configSections elemnt which might exist. I'm using RemoveAll for no good reason, you should probably use Remove.

    The overall code looks like so:

    
    
        

    The question which still remains unanswered is why Locator conditions are not taken into account for InsertBefore. Or why I can't handle an empty match set for InsertBefore, because that would allowed me to do fun things such as

    //configuration/*[position()=1 and not(local-name()='configSections')]
    

    Which to be honest is a much clearer way of doing what I want to achieve.

    0 讨论(0)
提交回复
热议问题