我们在安装期间使用wix修改xml。我们需要将一个xml元素列表添加到文件中。 示例列表:
<Item>
<Address>some@address.com</Address>
</Item>
<Item>
<Address>someother@address.com</Address>
</Item>
现在我们要将其添加到特定节点下的xml文件中。
我们怎么能在wix中做到这一点?
我们已经使用XmlFile来修改xml的其他部分,我们可以使用它还是我们必须使用自定义操作?
答案 0 :(得分:0)
您可以使用XMLFIle元素本身来创建所需的节点。您应该在XMLFILE节点中使用以下属性。
动作=&#34; createElement&#34;
在ElementPath中指定的元素下创建一个新元素。在这种情况下,Name属性是必需的,并指定新元素的名称。将createElement指定为操作时,不需要Value属性。如果设置了Value属性,则会设置新元素的文本值
例如:我们希望安装程序在设置节点下添加新节点:
<settings>
<add key="a_key" value="a_value">key_item
<inside>inside_item</inside>
</add>
</settings>
您应该在wix脚本中使用以下内容来实现此目的:
<util:XmlFile Id='XmlSettings1' File='[INSTALLDIR]settings.xml'
Action='createElement' Name='add' ElementPath='//settings' Sequence='1' />
<util:XmlFile Id='XmlSettings2' File='[INSTALLDIR]settings.xml'
Action='setValue' Name='key' Value='a_key' ElementPath='//settings/add' Sequence='2' />
<util:XmlFile Id='XmlSettings3' File='[INSTALLDIR]settings.xml'
Action='setValue' Name='value' Value='a_value' ElementPath='//settings/add' Sequence='3' />
<util:XmlFile Id='XmlSettings4' File='[INSTALLDIR]settings.xml'
Action='setValue' Value='key_item' ElementPath='//settings/add' Sequence='4' />
<util:XmlFile Id='XmlSettings5' File='[INSTALLDIR]settings.xml'
Action='createElement' Name='inside' ElementPath='//settings/add' Sequence='5' />
<util:XmlFile Id='XmlSettings6' File='[INSTALLDIR]settings.xml'
Action='setValue' Value='inside_item' ElementPath='//settings/add/inside' Sequence='6' />