2011-11-22 133 views
1

相似的名稱添加XML節點我們有以下形式的配置文件:使用維克斯

<Container> 
    <Item> 
     <name>Text</name> 
    </Item> 
    <Item> 
     <name>MoreText</name> 
    <Item> 
</Container> 

,並要添加使用XMLFILE或XMLConfig的多個項目/名稱的節點。雖然我可以添加一個新的空物件節點,但我無法選擇該節點本身來添加所需的名稱子節點。我試過使用:

ElementPath="/Container/Item[\[]last()[\]]" 

創建新的Item節點後,但WiX無法找到它。

我完全離開了牆嗎?

回答

1

只是猜測,但問題可能是默認的選擇語言。 IIRC,舊的「XSLPattern」選擇語言是默認的,不支持last()XmlFile可讓您設置語言。看起來像XmlConfig的疏忽。

0

最後我不得不硬編碼的各種編號S和使用序列號,以確保順序是正確的:

<util:XmlConfig Id="NewItem1" Action="create" File="[DIR]\Item.config" ElementPath="/Container" Name="Item" Node="element" On="install" Sequence="50" /> 
<util:XmlConfig Id="NewName1" Action="create" File="[DIR]\Item.config" ElementPath="/Container/Item[\[]2[\]]" Name="name" Value="MoreText1" Node="element" On="install" Sequence="51" /> 
<util:XmlConfig Id="CreatePRAlertEmailNode" Action="create" File="[DIR]\Item.config" ElementPath="/Container" Name="Item" Node="element" On="install" Sequence="52" /> 
<util:XmlConfig Id="CreatePRAlertEmailName" Action="create" File="[DIR]\Item.config" ElementPath="/Container/Item[\[]3[\]]" Name="name" Value="MoreText2" Node="element" On="install" Sequence="53" /> 
<util:XmlConfig Id="CreatePRAlertRSSNode" Action="create" File="[DIR]\Item.config" ElementPath="/Container" Name="Item" Node="element" On="install" Sequence="54" /> 
<util:XmlConfig Id="CreatePRAlertRSSName" Action="create" File="[DIR]\Item.config" ElementPath="/Container/Item[\[]4[\]]" Name="name" Value="MoreText3" Node="element" On="install" Sequence="55" /> 

它的效果並不理想,需要改變,如果端點的變化,但它現在工作。