2011-11-22 91 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" /> 

它的效果并不理想,需要改变,如果端点的变化,但它现在工作。