Работает отлично! Я считаю, что это одно из лучших решений для этой задачи.

файл XML:

<favorites>
    <movies>
        <movie title="The Godfather" year="1974" />
        <movie title="The Terminator" year="1984" />
        <movie title="Dark Knight" year="2008" />
    </movies>

    <books>
        <book title = "1984" author="George Orwell" />
        <book title = "Robinson Crusoe"" author="Daniel Defoe"/>
        <book title = "Frankenstein" author="Mary Shelly" />
    </books>

    <music>
        <artist title = "Beatles" genre="rock" />
        <artist title = "Queen" genre="rock" />
        <artist title = "Metallica" rock="heavy metal" />
    </music>
</favorites>

Мне нужно отфильтровать определенный узел (музыку)со всеми родителями и детьми узлы. Результат должен быть:

<favorites>
  <music>
    <artist title="Beatles" genre="rock" />
    <artist title="Queen" genre="rock" />
    <artist title="Metallica" rock="heavy metal" />
  </music>
</favorites>

Я нашел решение для фильтрации XML с помощью System.XML & LINQ:

 XDocument xdoc = XDocument.Parse(xmlString);    
 xdoc.Descendants()
     .Where(x => x.Name != "favorites" & x.Name != "music" & x.Name != "artist")
     .Remove();    
 Console.WriteLine(xdoc.ToString());

Рабочий образец здесь:https://dotnetfiddle.net/NnA4h7#

Проблема в том, что мне нужно указать все родительские и дочерние узлы в моем запросе.

Есть ли способ получить тот же результат, указав только нужный узел (фильмы, книги, музыка)?

Ответы на вопрос(2)

Ваш ответ на вопрос