2011-07-08 19 views
5

Belgedeki öznitelik var ise, öznitelik XmlDocument nesnesinden nasıl kaldırılır? Lütfen yardım et. RemoveAttribute kullanıyorum ama var olup olmadığını nasıl kontrol edebilirim.xmldocument öğesinden varsa özniteliği kaldır

root.RemoveAttribute (fieldName);

Teşekkür ..

<?xml version="1.0" standalone="yes" ?> 
<Record1> 
    <Attribute1 Name="DataFieldName" Value="Pages" /> 
</Record1> 

ben "DataFieldName" isimli özelliğinin kaldırmak için çalışıyorum.

+0

XML'inizi göstermek ister misiniz? Kodunuzu göstermek ister misiniz? –

cevap

10

Tam olarak ne yapmaya çalıştığınızdan emin değilsiniz, bu yüzden iki örnek var. boş bir dizeye niteliğini ayarlama

var doc = new System.Xml.XmlDocument(); 
doc.Load("somefile.xml"); 
var root = doc.FirstChild; 

foreach (System.Xml.XmlNode child in root.ChildNodes) 
{ 
    if (child.Attributes["Name"] != null) 
     child.Attributes.Remove(child.Attributes["Name"]); 
} 

:

sıfatı kaldırmak

var doc = new System.Xml.XmlDocument(); 
doc.Load("somefile.xml"); 
var root = doc.FirstChild; 

foreach (System.Xml.XmlNode child in root.ChildNodes) 
{ 
    if (child.Attributes["Name"] != null) 
     child.Attributes["Name"].Value = ""; 
} 

Edit: Ben yapabilirsiniz Özgün istek üzerine ayrıntılı eğer kodumu değiştirmeye çalışın. Bir XML belgesinin yalnızca bir kök düğümü olabilir ve sizinki kayıtlarınız1 gibi görünür. Bu, tüm dosyanızın sadece tek bir kayıt içereceği anlamına mı geliyor? Veya bunu yapmak için

<?xml version="1.0" standalone="yes" ?> 
<Records> 
    <Record> 
     <Attribute Name="DataFieldName" Value="Pages" /> 
    </Record> 
    <Record> 
     <Attribute Name="DataFieldName" Value="Pages" /> 
    </Record> 
</Records> 
+0

kod için teşekkürler. Bu özellik için çalışır. Varsa, "Attribute1" düğümünü kaldırabilir miyim. – nav100

+0

Attribute1 adlı tek bir çocuk düğümüm var. Varsa kaldırmaya çalışıyorum. – nav100

+0

Yalnızca bir Attribute1 düğümünüz varsa ve üst düğümün altındaysa, bir XmlDocument oluşturduktan sonra bir dosya yükledikten sonra şu komutu çağırmanız yeterlidir: doc.RemoveChild (doc.SelectSingleNode ("Attribute1")); –

1

youcan kullanım XmlNamedNodeMap.RemoveNamedItem Yöntemi (isim) gibi bir şey var demek istedi. Öznitelikler için kullanılabilir. Eşleşen bir düğüm bulunamazsa, bu XmlNamedNodeMap dosyasından kaldırılan XmlNode veya boş bir başvuru (Visual Basic'teki hiçbir şey) döndürür.

[C#] 
    using System; 
    using System.IO; 
    using System.Xml; 

    public class Sample 
    { 
    public static void Main() 
    { 
    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml("<book genre='novel' publicationdate='1997'> " + 
       " <title>Pride And Prejudice</title>" + 
       "</book>");  

    XmlAttributeCollection attrColl = doc.DocumentElement.Attributes; 

    // Remove the publicationdate attribute. 
    attrColl.RemoveNamedItem("publicationdate"); 

    Console.WriteLine("Display the modified XML..."); 
    Console.WriteLine(doc.OuterXml); 

    } 
    }