【问题标题】:WIX XmlConfig VerifyPath escapingWIX XmlConfig VerifyPath 转义
【发布时间】:2017-10-19 14:51:36
【问题描述】:

我正在使用 WIX 在文件中添加 XML 元素。当我的 util:XmlConfig 元素具有这样的 VerifyPath 属性时:

VerifyPath="/configuration/App/add[@key='ApiURL']"

什么也没发生。现在我把它改成了这样(基于我在代码库其他地方找到的一些其他代码):

VerifyPath="/configuration/App/add[\[]@key='ApiURL'[\]]"

并且它正确地添加了元素。这是什么转义,为什么有必要?

【问题讨论】:

    标签: xml xpath wix wix3.7


    【解决方案1】:

    我试图独立地找出与您相同的问题的答案,我找到了回答您问题的线索here。这个 StackOverflow 答案让我想到了这个 document 关于 Windows Installer 中的格式化类型。

    我已经复制了下面的相关文本,但简而言之,"[\[]" 是您获得文字 "[" 字符的方式。

    如果找到 [\x] 形式的子字符串,则将其替换为字符 x ,其中 x 是一个字符,无需任何进一步处理。只保留反斜杠后的第一个字符;其他所有内容都被删除。例如,要包含文字左括号 ([),请使用 [\[]。文本 [\[]Bracket Text[\]] 解析为 [Bracket Text]。

    【讨论】:

      【解决方案2】:

      如果我正确理解了 XPath 规范以及它在 Wix 工具集中如何为我工作,这些字符表明工作将使用 add 属性完成,其中有一个值 键

      <configuration>
          <App>
              <add key='ApiURL'/>
          </App>
      </configuration>
      

      但我们需要朝这个方向看。我自己也没有找到具体的。

      【讨论】:

      • 我认为您正确理解了第一个示例中准确的 XPath 规范。第二个示例不是 XPath,但需要此代码才能运行。奇怪的转义应该会破坏我不理解的 XPath。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多