gpt4 book ai didi

c# - 我的属性搜索 XPath 查询有什么问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:37 25 4
gpt4 key购买 nike

我有一个 XPath 查询,它看起来很适合我,但没有返回任何结果。

它被测试的 XML 文档:

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Deployment.Parts>
<AssemblyPart x:Name="foo" Source="foo.dll" />
</Deployment.Parts>
</Deployment>

代码:

Xml = new XmlDocument();
Xml.LoadXml(text);
Manager = new XmlNamespaceManager(Xml.NameTable);
//use constants for namespaces to make more readable
Manager.AddNamespace("a", NS_DEPLOYMENT_2007); //use 'a' for default namespace here so xpath is easier
Manager.AddNamespace("x", NS_XAML_2006);

string xpath="//a:Deployment.Parts/a:AssemblyPart[@a:Source='foo.dll']";
var tmp = Xml.SelectNodes(xpath, Manager);

这里我的 XPath 查询有什么问题?

最佳答案

您需要从属性中删除命名空间前缀:

string xpath="//a:Deployment.Parts/a:AssemblyPart[@Source='foo.dll']";

如果属性明确定义了命名空间,则只需要为其指定命名空间,因此当您想要查询 Name 属性时,您必须添加它:

string xpath="//a:Deployment.Parts/a:AssemblyPart[@x:Name='foo']";

关于c# - 我的属性搜索 XPath 查询有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com