2012-03-07 5 views
-1

У меня есть, что XML-документ:редактирование XML с помощью C#

<?xml version="1.0" encoding="utf-8" ?> 

<reminders> 
    <reminder> 
    <Title>Alarm1</Title> 
    <Description>Desc1</Description> 
    <Time>03/07/2012 10:11AM</Time> 
    <snooze>1</snooze> 
    <repeat>None</repeat> 
    </reminder> 
    <reminder> 
    <Title>Alarm2</Title> 
    <Description>Desc2</Description> 
    <Time>03/07/2012 10:11AM</Time> 
    <snooze>15</snooze> 
    <repeat>Daily</repeat> 
    </reminder> 
</reminders> 

И сказать, что я хотел бы создать полный напоминание ребенку, как:

<reminder> 
    <Title>NEW-Alarm</Title> 
    <Description>New-Desc</Description> 
    <Time>03/07/2012 10:11AM</Time> 
    <snooze>15</snooze> 
    <repeat>Daily</repeat> 
    </reminder> 

Как я могу сделать это в C#?

А также i`d хотел изменить некоторые ребенка, как от:

<Title>NEW-Alarm</Title> 

быть

<Title>Modified-NEW-Alarm</Title> 

Я в свежем виде XML и я на самом деле мой лучший, на самом деле я, как открытие 13 веб-страниц для xml, но ни один из них не имеет того, что мне действительно нужно, поэтому я по-настоящему ценю вашу помощь.

+1

-1 - «открытие, как 13 веб-страниц», пока не отображено ни одного образца кода, который вы пробовали, и у вас проблемы. –

+0

Я пробовал много образцов кода, и никто не работал. –

+0

Хорошо, тогда вы не открывали достаточно веб-страниц. – Bernard

ответ

1

Загрузите документ с XDocument class

Добавить элемент (редактировать PATH с вашими данными):

XElement newEl = new XElement(new XElement("reminder", 
           new XElement("Title", "NEW-Alarm"), 
           new XElement("Description", "New-Desc"), 
           new XElement("Time", "03/07/2012 10:11AM"), 
           new XElement("snooze", "15"), 
           new XElement("repeat", "Daily"))); 
        doc.Root.Add(newEl); 
        doc.Save(PATH); 

Для изменения, мы должны сначала найти элемент (с LINQ), а затем применить метод SetValue , http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.setvalue.aspx

+0

Спасибо за ваш ответ, но у меня есть ошибка: System.NullReferenceException: Ссылка на объект не установлена ​​в экземпляр объекта. на doc.Root.Add (newEl); –

+0

Необходимо загрузить документ. См. Метод XDocument.Load() – Julien

4

Я бы посмотрел на использование XDocument. Вы можете искать в Интернете примеры создания XML с ним, но этот ответ от неудержимого Jon тарелочкам является хорошим местом для начала:

XML file creation using XDocument in C#

Надежда, что помогает.

Также см эти ссылки:

http://www.codeproject.com/Articles/169598/Parse-XML-Documents-by-XMLDocument-and-XDocument

http://www.leghumped.com/blog/2009/06/30/c-xml-with-xdocuments/

http://forums.asp.net/t/1736899.aspx/1?Help+using+XDocument+in+LINQ+with+ASP+Net+C+

1

Вы должны смотреть в XDocument как способ открыть свой XML-документ, а затем принять взглянуть на документацию для XElement, чтобы увидеть, как легко создавать узлы.

Каждая страница документации имеет отличные образцы.

Смежные вопросы