Я хотел, чтобы вы посмотрите на: https://msdn.microsoft.com/en-us/library/ms162365(v=vs.110).aspx, https://msdn.microsoft.com/en-us/library/system.xml.xmlnode(v=vs.110).aspx и https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.appendchild(v=vs.110).aspx
Документация Microsoft является отличным источником для такого рода вопросы.
Загрузите Xml
Вы можете сделать это с помощью строки
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xml);
Или с помощью потока файлов (вы можете использовать XDocument у вас есть сейчас)
XmlDocument xmlDocument = new XmlDocument();
using(XmlReader xmlReader = xDocument.CreateReader())
{
xmlDocument.Load(xmlReader);
}
Выбор узла
Для этого вы можете использовать XPath (http://www.w3schools.com/xsl/xpath_syntax.asp, которым возвращает XmlNodeList
XmlNodeList categoryNodes = xmlDocument.SelectNodes("config//newsy//category");
Создать новый элемент
Для создания нового элемента и может использовать метод CreateElement (есть и другие методы создания атрибуты и т.д. см. документацию Microsoft).
XmlNode newSource = xmlDocument.CreateElement("source");
XmlNode newSourceUrl = xmlDocument.CreateElement("url");
newSourceUrl.InnerText = "http://www.test.com";
newSource.AppendChild(newSourceUrl);
Это создает новый исходный элемент и элемент url. элемент url будет добавлен к исходному элементу.
Добавьте его к категории
Добавить его в категории узла.
if (categoryNodes != null && categoryNodes.Count > 0)
categoryNodes[0].AppendChild(newSource);
Поиск узла, к которому вы хотите добавить ребенка. Вы могли бы также проверить на определенный атрибут как так:
foreach (XmlNode node in categoryNodes)
{
if (string.Equals(node.Attributes["id"].Value.ToString(), "sport", StringComparison.OrdinalIgnoreCase))
node.AppendChild(newSource);
}
Сохранить
Сохранить XmlDocument. Для того, чтобы сохранить его на диске:
xmlDocument.Save(path);
Новый XML
<?xml version="1.0"?>
<config>
<newsy>
<category id="sport">
<source>
<contelemname>cont</contelemname>
<refresh>3</refresh>
<url>http://sport.wp.pl/rss.xml</url>
</source>
<source>
<contelemname>cont</contelemname>
<refresh>5</refresh>
<url>http://moto.wp.pl/rss.xml</url>
</source>
<source>
<url>http://www.test.com</url>
</source>
</category>
</newsy>
</config>
Я надеюсь, что это помогает и.
Да, человек, похоже, что у вас не было достаточно – meda
Я пробовал все ... – Enteee
Вы также пытались применить примеры в ссылках, которые я предоставил? –