我尝试根据xpath查询的输出创建WPF树视图。这个想法是,基于搜索字符串,将呈现表示非常大的xml文档的微小子集的树视图。 WPF和xpath对我来说是全新的(几周),所以可能是一个愚蠢的问题......
在控制台应用程序中,这样可以正常工作,并提供我想要的树作为基础。
XmlNodeList nodeList = root.SelectNodes("//item[not (item) and contains(name, 'kidney')]//ancestor::item");
foreach (XmlNode node in nodeList)
{
file.WriteLine($"{node.ChildNodes[0].InnerText}");
//Console.WriteLine($"{node.Name} - {node.InnerText}");
}
但是,当我在绑定中使用相同的xpath时,如下所示:
ItemsSource="{Binding Source={StaticResource xmlDataProvider}, XPath=//item[not (item) and contains(name, 'kidney')]//ancestor::item}"
我在xpath片段的构造周围遇到了一堆或错误(xpath = / *工作正常)。我认为它可能是单引号,但替换为XML特殊字符或转义为\没有区别。在这个阶段,我想知道是否可以使用嵌套的xpath语句?
答案 0 :(得分:0)
尝试在XPath绑定参数中转义'
,如下所示:
XPath=//item[not(item) and contains(name, \'kidney\')]//ancestor::item