Jestem nowy w XML & C#. Chcę usunąć element główny bez usuwania elementu podrzędnego. Plik XML jest strudctured jak poniżej.Jak usunąć element główny w C#/
<?xml version="1.0" encoding="UTF-8"?>
<dataroot generated="2013-07-06T20:26:48" xmlns:od="urn:schemas-microsoft-com:officedata">
<MetaDataSection>
<Name>KR04</Name>
<XMLCreationDate>02.05.2013 9:52:41 </XMLCreationDate>
<Address>AUTOMATIC</Address>
<Age>22</Age>
</MetaDataSection>
</dataroot>
Chcę wykorzenić element "dataroot", więc powinien wyglądać jak poniżej.
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataSection>
<Name>KR04</Name>
<XMLCreationDate>02.05.2013 9:52:41 </XMLCreationDate>
<Address>AUTOMATIC</Address>
<Age>22</Age>
</MetaDataSection>
Usuwanie elementów podrzędnych wygląda na łatwe, ale nie wiem, jak usunąć tylko element główny. Poniżej znajduje się kod, który próbowałem do tej pory.
XmlDocument xmlFile = new XmlDocument();
xmlFile.Load("path to xml");
XmlNodeList nodes = xmlFile.SelectNodes("//dataroot");
foreach (XmlElement element in nodes)
{
element.RemoveAll();
}
Czy istnieje sposób na usunięcie tylko elementu głównego? bez usuwania elementów potomnych? Dziękuję w advnace.
Dziękujemy za szybką odpowiedź. Użyłem poniżej jednego i działało idealnie. Jak to może być takie proste !? Powyższy kod działa jak zabranie pierwszego dziecka i zapisanie go bez elementu root? Bardzo to doceniam. – Toykeat
@Toykeat: Dokładnie tak jak mówisz - to tylko oszczędza element. Nie musisz niczego usuwać. –
@JonSkeet Co zrobić, jeśli mam wiele dzieci pod tym samym elementem root? powinienem użyć coś takiego: 'var allChildrens = input.Root.Elements();'? –