Query specific element in XElement
我有这段代码,我正试图调整它以只取回消息元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public static void Main(string[] args) { Console.WriteLine("Querying tree loaded with XElement.Load"); Console.WriteLine("----"); XElement doc = XElement.Parse(@"<magento_api> <messages> <error> <data_item> <wyn>400</wyn> <message>Attribute weight is not applicable for product type Configurable Product</message> </data_item> <data_item> <wyn>400</wyn> <message>Resource data pre-validation error.</message> </data_item> </error> </messages> </magento_api>"); IEnumerable<XElement> childList = from el in doc.Elements() select el; foreach (XElement e in childList) Console.WriteLine(e); } |
我想得到以下结果:
1 2 | <message>Attribute weight is not applicable for product type Configurable Product</message> <message>Resource data pre-validation error.</message> |
我是整个查询 XElement 的新手,因此感谢您提供任何帮助。
您应该使用以下内容:
1 2 3 4 | foreach (var descendant in doc.Descendants().Where(x => x.Name =="message")) { Console.WriteLine(descendant); } |
另外,我建议执行以下操作:
1 2 3 4 | foreach (var descendant in doc.Descendants()) { Console.WriteLine(descendant); } |
为了更好地理解 XElement 的工作原理。