您可以使用XMLFIle元素本身來創建所需的節點。您應該在XMLFILE節點中使用以下屬性。
行動= 「的createElement」
創建在ElementPath指定的元素下的新元素。在這種情況下Name屬性是必需的,並指定新元素的名稱。將createElement指定爲操作時,Value屬性不是必需的。如果值屬性被設置,這將導致新元素的文本值設置
例如:我們希望安裝程序的設置節點下添加新節點:
<settings>
<add key="a_key" value="a_value">key_item
<inside>inside_item</inside>
</add>
</settings>
您應該具備以下您威克斯腳本中實現這一點:
<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' />
XMLFILE EXample XMLFILE Element
的問題是,我們不是k現在添加多少個元素。這由用戶在安裝程序GUI中輸入。我認爲你的建議只有在你知道元素的確切數量時纔有效。但是設置最大數量的元素是一個想法... – Julius
我不知道,因爲這個問題沒有明確地提出。 WIX的foreach循環(檢查迭代語句部分)在這個鏈接http://wixtoolset.org/documentation/manual/v3/overview/preprocessor.html BUt我認爲在你的情況下,會更容易創建一個自定義操作來做工作。 – Isaiah4110
你說得對,我改了標題。 – Julius