2017-02-22 119 views
0

變換:應用XDT基於鑑於這種XML配置文件的同級元素值

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" version="2.0"> 
    <schedule> 
    <trigger> 
     <cron> 
     <name>Trigger1</name> 
     <cron-expression>0 0 1 * * ?</cron-expression> 
     </cron> 
    </trigger> 
    <trigger> 
     <cron> 
     <name>Trigger2</name> 
     <cron-expression>0 0 2 * * ?</cron-expression> 
     </cron> 
    </trigger> 
    </schedule> 
</job-scheduling-data> 

我想爲Trigger2變換<cron-expression>值。

使用這種變換:

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <schedule> 
    <trigger> 
     <cron> 
     <name>Trigger2</name> 
     <cron-expression 
      xdt:Transform="Replace" 
      xdt:Locator="XPath(/job-scheduling-data/schedule/trigger/cron[name='Trigger2'])">0 0 3 * * ?</cron-expression> 
     </cron> 
    </trigger> 
    </schedule> 
</job-scheduling-data> 

當生成項目,我看到編譯器警告:

源文檔中的任何元素 「/作業調度數據/日程表/觸發匹配/ cron的[名稱= '觸發2']」。

XPath查詢似乎是正確的,但該規則從未應用(因此編譯器警告)。

我的項目配置爲使用的TransformXML任務在Visual Studio 2015年

我是不是做錯了什麼構建變換?

回答

0

@PingCrosby answer到另一個問題幫助解決問題。解決辦法是:

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <schedule> 
    <trigger> 
     <cron xdt:Locator="XPath(//*[local-name()='job-scheduling-data'] 
           /*[local-name()='schedule'] 
           /*[local-name()='trigger'] 
           /*[local-name()='cron'] 
            [*[local-name() = 'name'] = 'Trigger2'])"> 
     <cron-expression xdt:Transform="Replace">0 0 3 * * ?</cron-expression> 
     </cron> 
    </trigger> 
    </schedule> 
</job-scheduling-data> 
相關問題