2009-02-03 1 views
3

Я пытаюсь обновить xml без linq (я использую VC 2.0). Мой формат XML файл:Обновление программно xml с C#

 

<schedule> 
<id>0</id> 
<name>yusuf</name> 
<status>0</status> 
</schedule> 

AFTER UPDATE: 

<schedule> 
<id>0</id> 
<name>yusuf</name> 
<status>1</status> 
</schedule> 
 

, но я не имею никакого статуса идеи обновления = 0 в состояние = 1

ответ

13

Вы можете сделать это с помощью System.Xml.XmlDocument в любой версии .NET (кроме Silverlight, где только XDocument существует):

XmlDocument doc = new XmlDocument(); 
    doc.LoadXml(xml); // or doc.Load(path) 
    doc.SelectSingleNode("/schedule/status").InnerText = "1"; 
    string newXml = doc.OuterXml; // or doc.Save(path); 
+0

Не забудьте проверить, что SelectSingleNode() фактически возвращает узел (проверьте значение null), или вы получите исключение. – xan

+0

Ну, если мы ожидаем, что оно будет там, исключение будет разумным - но да, мы могли бы выбросить что-то более очевидное «узел состояния не найден» или что-то еще. –

+0

Я теперь жду, когда толпа регулярного выражения придет, чтобы сообщить нам, как это сделать правильно :) – Kev

2

Заполните свой XML в XmlDocument, выполните обновление, а затем сохраните результат.