使用XPath在WIX中删除扩展名为XmlConfig的XML元素
我试图使用XmlFile扩展名删除XML文件中的条目,确切地说,这是一个:使用XPath在WIX中删除扩展名为XmlConfig的XML元素,xml,xpath,wix,Xml,Xpath,Wix,我试图使用XmlFile扩展名删除XML文件中的条目,确切地说,这是一个: 这是我的XML文件 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Elements> <Element name="Somename" attribute2="whatever" provider-name="whatever2" type="DotNet"></Element> <E
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Elements>
<Element name="Somename" attribute2="whatever" provider-name="whatever2" type="DotNet"></Element>
<Element name="Somename2" attribute2="whatever" provider-name="whatever2" type="DotNet"></Element>
</Elements>
<Feature Id='Config' Level='1'>
<Component KeyPath="yes" Id="UpdateConfig" Guid="{xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" Directory="MyCommonAppDataFolders">
<util:XmlConfig Action="delete" Id="RemoveAnElement" Node="element" File="path\to\my\file.xml" VerifyPath='/Elements/Element[\[]@name=\"Somename"[\]]' ElementPath="/Elements/Element" Sequence="1" />
</Component>
<Condition Level="1">FILEEXISTS</Condition>
</Feature>
这是我的Wix代码
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Elements>
<Element name="Somename" attribute2="whatever" provider-name="whatever2" type="DotNet"></Element>
<Element name="Somename2" attribute2="whatever" provider-name="whatever2" type="DotNet"></Element>
</Elements>
<Feature Id='Config' Level='1'>
<Component KeyPath="yes" Id="UpdateConfig" Guid="{xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" Directory="MyCommonAppDataFolders">
<util:XmlConfig Action="delete" Id="RemoveAnElement" Node="element" File="path\to\my\file.xml" VerifyPath='/Elements/Element[\[]@name=\"Somename"[\]]' ElementPath="/Elements/Element" Sequence="1" />
</Component>
<Condition Level="1">FILEEXISTS</Condition>
</Feature>
文件存在
当我运行安装程序时,它会重写file.xml,但看起来是一样的。它不会删除-><util:XmlConfig Id='SetXMlfiletest'
File='[#filename]'
Action='delete'
Node='element'
ElementPath="/Elements"
On='install'
PreserveModifiedDate='yes'
VerifyPath="/Elements/Element[\[]@name='Somename'[\]]"
Sequence="1" />
在上面的脚本中,您需要用xml文件的ID更新“#filename”
希望这有帮助 我认为xpath中有一些额外的括号。你能试试这个:
//Element\[@name='Somename'\]“
@deanosar不,这就是wix逃逸的原因。我更新了我的代码,但删除元素时仍然有问题。你好,这个问题解决了吗?有类似的问题吗