Как изменить содержимое элемента XElement?

есть ли простой способ изменить InnerXml элемента XElement? предположим, у нас есть этот чрезвычайно простой xml

<planets>
    <earth></earth>
    <mercurio></mercurio>
</planets>

и мы хотим добавить некоторые xml, которые приходят из другого источника, который приходит как строка"<continents><america/><europa/>.....blablabla" в узел земли.

Я читал связанные вопросы, но они говорят о получении innerxml элемента XElement, и я не понимаю, как "изменить" фактический элемент Xelement : (

2 ответов


построить XML

planetsElement.Element("earth").Add(
    new XElement("continents",
        new XElement("america"),
        new XElement("europa")
    )   
);

проанализировать и добавить

planetsElement.Element("earth").Add(
   XElement.Parse("<continents><america/><europa/></continents>")
);

использовать XElement.ReplaceNodes() для установки содержимого элемента. Так. ..

var doc = XDocument.Parse(xmlString);
var earth = doc.Root.Element("earth");

// to replace the nodes use
earth.ReplaceNodes(XElement.Parse("<continents><america/><europa/></continents>"));

// to add the nodes
earth.Add(XElement.Parse("<continents><america/><europa/></continents>"));