LINQ to XML рекурсивно удаляет элементы - C # - PullRequest
0 голосов
/ 15 октября 2011

У меня есть следующий XML:

<Root>
 <Section name="xyz" />
 <Section name="abc">
   <Section name="def" />
 </Section>
 <Section name="abc">
   <Section name="def">
     <Section name="xyz" />
     <Section name="abc" />
     <Section name="xyz">
       <Section name="xyz" />
     </Section>
  </Section>
</Section>
</Root>

У меня есть XDocument представление XML.Как мне пройти через дерево и удалить все элементы, скажем, abc

1 Ответ

6 голосов
/ 15 октября 2011

Это действительно просто:)

doc.Descendants("Section")
   .Where(x => (string) x.Attribute("name") == "xyz")
   .Remove();

Должен любить LINQ to XML ...

РЕДАКТИРОВАТЬ: я только что попробовал это с вашим примером XML, и это было результатом потом:

<Root>
  <Section name="abc">
    <Section name="def" />
  </Section>
  <Section name="abc">
    <Section name="def">
      <Section name="abc" />
    </Section>
  </Section>
</Root>

Пожалуйста, дайте мне знать, если это не то, что вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...