Фильтровать результат по определенному узлу в XML - PullRequest
0 голосов
/ 20 июня 2019

у меня есть xml, как показано ниже

<Orders>
<Order>
<ABC>defe</ABC>
</Order>

<Order>
<ABC>asa</ABC>
<YYY>ee1@ee.com</YYY>
</Order>

<Order>
<ABC>tyty</ABC>
<YYY>ee1@ee.com</YYY>
</Order>
</Orders>

Я хочу получить запись, у которой есть узел YYY, как в предыдущем случае запрос должен вернуть два набора порядка, которые содержат там узел YYY. Первая запись должна быть исключена из отфильтрованного результата. Результат должен быть

<Order>
<ABC>asa</ABC>
<YYY>ee1@ee.com</YYY>
</Order>

<Order>
<ABC>tyty</ABC>
<YYY>ee1@ee.com</YYY>
</Order>

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 20 июня 2019

См. Код ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication116
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            List<XElement> orders = doc.Descendants("Order").Where(x => x.Element("YYY") != null).ToList();
        }
    }
}
...