从WiX更改XML节点值
问题描述:
我希望能够从WiX更改XML节点值。 XML结构如下所示:从WiX更改XML节点值
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<setting name="setting1">
<value xsi:type="xsd:boolean">false</value>
</setting>
<setting name="setting2">
<value xsi:type="xsd:string">hello</value>
</setting>
</settings>
我想将setting2的字符串值更改为其他值。我试图用XmlConfig
和不工作看起来像这样的代码:
<util:XmlConfig Id='SetSetting2' File='[#defaultSettings.xml]'
Action='create' Node='value'
ElementPath="//settings/setting[\[]@name='setting2'[\]]/value"
Name='value' Value="test"
On='install' PreserveModifiedDate='yes'
VerifyPath="//settings/setting[\[]@name='setting2'[\]]/value/"/>
但是,这会产生XML看起来像这样:
<setting name="setting2">
<value xsi:type="xsd:string" value="test"></value>
</setting>
如何使它看起来像下面?
<setting name="setting2">
<value xsi:type="xsd:string">test</value>
</setting>
答
尝试省略Name
属性。就像这样:
<util:XmlConfig Id='SetSetting2'
File='[#defaultSettings.xml]'
Action='create'
Node='value'
ElementPath="//settings/setting[\[]@name='setting2'[\]]/@value"
Value="test"
On='install'
PreserveModifiedDate='yes'
VerifyPath="//settings/setting[\[]@name='setting2'[\]]/@value/"/>
也XmlConfig Element见。对于属性Name
它说:
未设置此属性会导致元素的文本值被设置。否则,这指定了设置的属性名称。
我确定我曾试过这个,但很明显我没有。谢谢,它的工作原理! – 2011-02-18 14:11:21