2012-02-07 16 views
8

Her şeyden önce bu C# 'dir. NHS'de küçük bir grup meslektaş için bir internet panosu oluşturuyorum. Aşağıda, iç metinlerini değiştirmem gereken bir örnek xml dosyasıdır. Belirli bir öğeyi değiştirmem gerekiyor, örneğin "Workshop1". Birkaç çalıştayımız olduğu için genel bir yazarı kullanamayacak param yok çünkü XML belgesindeki tüm bilgileri aşağıdaki bu küçük kodla değiştirecek.Bir Xml düğümünün/öğesinin iç metninin değiştirilmesi

<?xml version="1.0" ?> 
    <buttons> 
     <workshop1>hello</workshop1> 
     <url1>www.google.co.uk</url1> 

Kesinlikle, ve atölye URL ekleyebilirsiniz belirli atölye seçmek için bir anahtar durumda kullanarak ve bütün belge yerini alacak aşağıda bu kodu kullanıyorum.

public void XMLW() 
    { 
     XmlTextReader reader = new XmlTextReader("C:\\myXmFile.xml"); 
     XmlDocument doc = new XmlDocument(); 

     switch (comboBox1.Text) 

     { 
      case "button1": 


       doc.Load(reader); //Assuming reader is your XmlReader 
       doc.SelectSingleNode("buttons/workshop1").InnerText = textBox1.Text; 
       reader.Close(); 
       doc.Save(@"C:\myXmFile.xml"); 
       break; 


     } 


    } 

Dolayısıyla, sadece benim C# programı elemanı "Atölye1" bulmak XML belgesine arama ve bir metin kutusu metin ile innerText değiştirmek istiyor netleştirmek için. Tüm belgeyi bir düğüm ile değiştirmeden kaydedebilirsiniz. Baktığın için teşekkürler. Bu

XmlDocument doc = new XmlDocument(); 
doc.Load(reader); //Assuming reader is your XmlReader 
doc.SelectSingleNode("buttons/workshop1").InnerText = "new text"; 

yapabilirsiniz XmlDocument ve XPath kullanımı

+2

"XDocument" veya en azından XmlDocument API'sini kullanmamanın bir nedeni var mı? Normalde sadece * xml * XML dosyalarını işlemek zorundaysanız 'XmlReader' /' XmlWriter' kullanırsınız. –

+0

Peki ben C# 'da bir yeni başlayan biriyim. Yani genel programı çalıştırmak için kodları bir araya getiriyorum ve çalışmayı gördüğümde kodu daha verimli hale getirmek için değiştirebilirim. Bu yoldan, çirkin ve temiz şeyler yapma arasındaki farkı öğrenebilir ve her ikisinin avantajlarını anlayabilirim. Ancak rehberliğiniz için teşekkür ederim, şimdi XMLReader/XMLWriter kullanmaya çalışacağım. – Marshal

+0

Benim tavsiyem 'XmlReader' /' XmlWriter' kullanmamalıydı… –

cevap

10

Ayrıca dosyayı kaydetmek için doc.Save kullanabilirsiniz.

MSDN'da XmlDocument hakkında daha fazla bilgi edinin. Belgeyi kaydetmek için

DÜZENLEME

bu size yardımcı olur bu

doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file. 

Umut yok.

+0

Bence çalışıyorum. Tek sorun şu ki, doktoru kurtarmama izin vermeyecek. Ben "doc.Save;" kullanıyorum Ancak bir hata ile geliyor ** "Sadece atama, çağrı, arttırma, azaltma ve yeni nesne ifadeleri bir deyim olarak kullanılabilir." ** Bunun nedeni bir XMLWriter kullanmıyorum? veya? Bu program üzerinde uzun zamandır çalışıyordum, muhtemelen bir aptalım. Eğer yukarı bakarsanız, onu görebiliyorsunuz. – Marshal

+0

Lütfen güncellenmiş yanıtımı kontrol edin. –

+0

Şimdi çalışmakta olduğunu ve gelecekteki kullanıcıların referans olarak gösterildiğini göstermek için yukarıdaki kodu düzenledik. Amar Palsapure'ye teşekkürler. – Marshal