转换配置文件,不带键或名称属性

时间:2014-05-21 21:22:41

标签: asp.net .net web-config app-config slowcheetah

我想转换一些属性,但我不能添加名称或键属性来使用xdt:Locator =“Match(name)”或xdt:Locator =“Match(key)”。

例如,我可以:

<parentElement>
    <children>
        <add key="ExampleKey">
            <thing attribute="blablabla"></thing>
        </add>
    </children>
</parentElement>

我怎么能用另一个值替换thing属性“blablabla”?

UPDATE 1:除此之外,我无法在“thing”标记中插入其他属性,因为它会通过使用该属性的dll引发一些错误。

更新2:似乎我必须使用SlowCheetah,然后它运作良好。感谢预览,我发现我可以将xdt:Transform =“Replace”添加到父元素,就像这样:

<parentElement xdt:Transform="Replace">
    <children>
        <add key="ExampleKey">
            <thing attribute="blablabla"></thing>
        </add>
    </children>
</parentElement>

现在它完美无缺! :)

1 个答案:

答案 0 :(得分:1)

您可以使用带有Condition定位符而非Match的XPath表达式找到该元素,如documentation中所述。即。

<?xml version="1.0" encoding="utf-8"?>
<parentElement xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <children>
    <add>
      <thing attribute="falala" xdt:Transform="SetAttributes" xdt:Locator="Condition(@attribute = 'blablabla')"></thing>
    </add>
  </children>
</parentElement>