在这里找出正确的选择语句时遇到问题
我有以下XML
<configuration>
<other sections>
<runtime>
<Binding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing Path="some path string" />
</Binding>
<Concurrent enabled="false" />
</runtime>
<other sections>
</configuration>
我试图在我检索路径字符串值的地方进行选择
到目前为止,我有这个
XDocument xdoc = XDocument.Load(XmlfilePath);
var query = (from c in xdoc.Descendants("probing")
where c.Attribute("Path") != null
select c.Attribute("Path").Value).FirstOrDefault();
但这不起作用,查询为空
答案 0 :(得分:3)
因为您的属性名称为Path
而不是privatePath
。您也可以使用显式广告,然后您不需要进行空检查:
var query = (from c in xdoc.Descendants("probing")
select (string)c.Attribute("Path")).FirstOrDefault();
更新:您的元素似乎有一个命名空间,因此您需要像这样指定命名空间:
XNamespace ns = "urn:schemas-microsoft-com:asm.v1";
var query = (from c in xdoc.Descendants(ns + "probing")
select (string)c.Attribute("Path")).FirstOrDefault();
您可能需要查看文档以获取有关xml命名空间的更多详细信息:Working with XML Namespaces