我正在尝试在我的Wix安装程序中编写一个XPath查询,以选择零子元素的节点。 我的元素路径看起来像这样,因为它是一个格式化的字符串,我逃避方括号。
ElementPath="a/b[\[]not(node())[\]"
我相信转换为
a/b[not(node())]
我的xml格式为
<a>
<b><x/><y/></b>
<b/>
<b><z/></b>
</a>
我希望我的Element路径选择没有子节点的第二个元素。当我在安装程序上运行灯时,它会抛出无效的格式错误。请告诉我哪里出错了。 此外,如果我必须选择具有特定值的节点, 这是正确的方法吗?
ElementPath="a/b[\[]z[\]"
以便我选择第三个节点作为子元素
答案 0 :(得分:1)
我认为你需要在表达式中使用另一个结束方括号:
ElementPath="a/b[\[]not(node())[\]]"
请注意此部分用于转义开方括号:
[\[]
逃避关闭方括号的另一个重要部分:
[\]]
您可以看到我在上面提到的两个重要部分中的每个部分都被包含在另一个方括号\]
中的转义方括号部分[]
。把它们放在一起就变成[\]]
。