2013-01-12 14 views
5

Bazı xml dosyalarını Linq - xml kullanarak değiştirmem gerekiyor.Varolan XDocument için bir ad alanı ekleme

Ben şimdi

Yük ben buna bir ad eklemek mümkün görünmektedir olamaz varolan XDocument var.

yapmam:

//Load an existing xml into a XDocument 
XDocument xdoc=XDocument.Load(myXml); 

//Create a namespace 
XNamespace myNS="http://www.w3.org/2001/XMLSchema-instance/MyShinyNewNamespace"; 
xAttribute myAttr=new XAttribute(XNamespace.Xmlns +"myNS",myNS); 

    //Add new namepsace to root 

xdoc.Root ???? 

What do you do here? 

nasıl ad almak mı?

Nasıl Çıkarılır/Değiştirilir?

çok teşekkür

tüm

cevap

14

Öncelikle XML işaretleme size beyan ad içine bu soyundan unsurların yanı sıra kök öğeyi koymak için tek bir ad alanı bildirimi özelliğini kullanmak

<root xmlns="http://example.com/ns"> 
    <foo> 
    <bar>baz</bar> 
    </foo> 
</root> 

kullanmanızı sağlar iken Ağaç modelini değiştirdiğinizde, tüm öğelerin Name değerini değiştirmeniz gerekir, örneğin Ayrıca daha sonra belli bir önek pf ayarlamak istiyorsanız

XNamespace myNs = "http://example.com/ns"; 

foreach (XElement el in xdoc.Descendants()) 
{ 
    el.Name = myNs + el.Name.LocalName; 
} 

ekstra aksesuar bkz

xdoc.Root.Add(new XAttribute(XNamespace.Xmlns + "pf", myNs));