在XDocument的任何深度按名称查询元素

我有一个XDocument对象。我想使用LINQ在任何深度查询具有特定名称的元素。使用时Descendants("element_name"),我只会得到当前级别的直接子级元素。我要寻找的是XPath中的“ // element_name”等价...我应该只使用XPath,还是可以使用LINQ方法来实现?谢谢。



慕仙森
浏览 715回答 3
3回答

犯罪嫌疑人X

后代应该工作得很好。这是一个例子:using System;using System.Xml.Linq;class Test{&nbsp; &nbsp; static void Main()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; string xml = @"<root>&nbsp; <child id='1'/>&nbsp; <child id='2'>&nbsp; &nbsp; <grandchild id='3' />&nbsp; &nbsp; <grandchild id='4' />&nbsp; </child></root>";&nbsp; &nbsp; &nbsp; &nbsp; XDocument doc = XDocument.Parse(xml);&nbsp; &nbsp; &nbsp; &nbsp; foreach (XElement element in doc.Descendants("grandchild"))&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(element);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}结果:<grandchild id="3" /><grandchild id="4" />
打开App,查看更多内容
随时随地看视频慕课网APP