我们有一个以下形式的配置文件:
<Container>
<Item>
<name>Text</name>
</Item>
<Item>
<name>MoreText</name>
<Item>
</Container>
并希望使用XMLFile或XMLConfig添加更多项目/名称节点。虽然我可以添加一个新的空Item节点,但我无法选择该节点本身来添加所需的名称子节点。我尝试过使用:
ElementPath="/Container/Item[\[]last()[\]]"
创建新的Item节点后,但WiX无法找到它。
我完全离开了墙吗?
答案 0 :(得分:1)
只是猜测但问题可能是默认的选择语言。 IIRC,旧的“XSLPattern”选择语言是默认语言,不支持last()
。 XmlFile
可让您设置语言。看起来像XmlConfig
上的疏忽。
答案 1 :(得分: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" />
它不理想,如果端点发生变化则需要更改,但现在可以使用。