我有一个XML,如下所示。当路径为d:\ mypath时,我将不得不获取标题。我试过下面的一个,但没有按预期给出。我想在LINQ to XML中实现它。
我的代码:
XDocument xdoc = XDocument.Load(file);
string mypath = @"D:\\Mypath";
var result = xdoc.Descendants("child")
.Where(i => (string)i.Element("content").Element("path") == mypath)
.Select(i => (string)i.Element("title")).FirstOrDefault();
现在我已经使用XPathSelectElement
完成了我的任务,如下所示,但我对LINQ查询感兴趣:
string a = (string)xdoc.XPathSelectElement(
"//child/content[path='" + mypath + "']/../doc_attributes/title");
示例XML:
<parent>
<doc>
<order>testorder</order>
<preorder>yes</preorder>
</doc>
<childs>
<child>
<doc_attributes>
<id>090015b3804fb931</id>
<title>CTA</title>
</doc_attributes>
<content>
<path>D:\\Mypath</path>
</content>
</child>
</childs>
</parent>
答案 0 :(得分:1)
你很接近,你只是忘记检查Value财产
.Where(i => i.Element("content").Element("path").Value == mypath)