Как мне изменить содержимое XElement? - PullRequest
6 голосов
/ 09 апреля 2010

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 09 апреля 2010

Сборка XML

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

Разбор и добавление

planetsElement.Element("earth").Add(
   XElement.Parse("<continents><america/><europa/></continents>")
);
2 голосов
/ 09 апреля 2010

Используйте 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>"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...