WIX XmlConfig VerifyPath 转义
Posted
技术标签:
【中文标题】WIX XmlConfig VerifyPath 转义【英文标题】:WIX XmlConfig VerifyPath escaping 【发布时间】:2017-10-19 14:51:36 【问题描述】:我正在使用 WIX 在文件中添加 XML 元素。当我的 util:XmlConfig 元素具有这样的 VerifyPath 属性时:
VerifyPath="/configuration/App/add[@key='ApiURL']"
什么也没发生。现在我把它改成了这样(基于我在代码库其他地方找到的一些其他代码):
VerifyPath="/configuration/App/add[\[]@key='ApiURL'[\]]"
并且它正确地添加了元素。这是什么转义,为什么有必要?
【问题讨论】:
【参考方案1】:我试图独立地找出与您相同的问题的答案,我找到了回答您问题的线索here。这个 *** 答案让我想到了这个 document 关于 Windows Installer 中的格式化类型。
我已经复制了下面的相关文本,但简而言之,"[\[]"
是您获得文字 "["
字符的方式。
如果找到 [\x] 形式的子字符串,则将其替换为字符 x ,其中 x 是一个字符,无需任何进一步处理。只保留反斜杠后的第一个字符;其他所有内容都被删除。例如,要包含文字左括号 ([),请使用 [\[]。文本 [\[]Bracket Text[\]] 解析为 [Bracket Text]。
【讨论】:
【参考方案2】:如果我正确理解了 XPath 规范以及它在 Wix 工具集中如何为我工作,这些字符表明工作将使用 add 属性完成,其中有一个值 键
<configuration>
<App>
<add key='ApiURL'/>
</App>
</configuration>
但我们需要朝这个方向看。我自己也没有找到具体的。
【讨论】:
我认为您正确理解了第一个示例中准确的 XPath 规范。第二个示例不是 XPath,但需要此代码才能运行。奇怪的转义应该会破坏我不理解的 XPath。以上是关于WIX XmlConfig VerifyPath 转义的主要内容,如果未能解决你的问题,请参考以下文章