2012-01-23 27 views
6

XML'im aşağıda;XML kökü altındaki belirli düğümleri kaldırın?

<XML ID="Microsoft Search Thesaurus"> 
<thesaurus xmlns="x-schema:tsSchema.xml"> 
    <diacritics_sensitive>1</diacritics_sensitive> 
    <expansion> 
    <sub>Internet Explorer</sub> 
    <sub>IE</sub> 
    <sub>IE5</sub> 
    </expansion> 
    <expansion> 
    <sub>run</sub> 
    <sub>jog</sub> 
    </expansion> 
</thesaurus> 
</XML> 

"Genişleme" düğümlerini XML'den kaldırmak istiyorum. İşlemi kaldırdıktan sonra böyle olurdu;

<XML ID="Microsoft Search Thesaurus"> 
<thesaurus xmlns="x-schema:tsSchema.xml"> 

</thesaurus> 
</XML> 

Benim kodum aşağıda;

XDocument tseng = XDocument.Load("C:\\tseng.xml"); 
XElement root = tseng.Element("XML").Element("thesaurus"); 
root.Remove(); 
tseng.Save("C:\\tseng.xml"); 

"Nesne başvurusu bir nesnenin örneğine ayarlanmadı" hatası aldım. satır "root.Remove()" için. XML dosyasındaki "genişletme" düğümlerini nasıl kaldırabilirim? Teşekkürler. yani ana yıldızdan gelen sadece genişleme düğümlerini kaldırmak istiyorsanız

cevap

3

Kullanım:

kaldıracak tek expansion elemanlar:

XNamespace ns = "x-schema:tsSchema.xml"; 
tseng.Root.Element(ns + "thesaurus") 
    .Elements(ns + "expansion").Remove(); 

thesaurus tüm çocukları kaldıracak:

XNamespace ns = "x-schema:tsSchema.xml"; 
tseng.Root.Element(ns + "thesaurus").Elements().Remove(); 
+0

Cevabınız için teşekkür ederiz. Benim için faydalı. – mkacar

+0

@mkacar, Rica ederim! –

0

şey

XElement root = tseng.Element("XML").Element("thesaurus"); 
tseng.Element("XML").Remove(thesaurus); 

gibi Sen tere olmayan herhangi oluncaya kadar sonra temelde bir kaldırmayı bulmak ...

düğüm kaldırmak Eş anlamlılar sözlüğü veya bir listesini döndürün ve bunları ana eş anlamlılar sözlüğünden kaldırmaya başlayın.

0

sizin thesaurus farklı bir ad alanı var çünkü hiçbir başarı . Çalışması için ti belirtmeniz gerekiyor. Kodunuz geçerli. Genel olarak kodunuz geçerlidir. İhtiyacınız olan sonuçlara ulaşmak için temel olmayan alt öğeleri silmek için ihtiyacınız olan tek şey.

İlgili konular