2011-07-08 12 views
5

से मौजूद है, तो XML में विशेषता मौजूद है, तो XmlDocument से विशेषता को कैसे हटाएं? कृपया मदद करे। मैं RemoveAttribute का उपयोग कर रहा हूं लेकिन यह कैसे जांच सकता है कि यह मौजूद है या नहीं।विशेषता हटाएं यदि यह xmldocument

root.RemoveAttribute (fieldName);

धन्यवाद ..

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

मैं "DataFieldName" नाम विशेषता दूर करने के लिए कोशिश कर रहा हूँ।

+0

अपना एक्सएमएल दिखाने की देखभाल? अपना कोड दिखाने की देखभाल करें? –

उत्तर

10

सुनिश्चित नहीं है कि आप वास्तव में क्या करने का प्रयास कर रहे हैं, इसलिए यहां दो उदाहरण हैं। कर सकते हैं मैं अगर आप अपने मूल अनुरोध पर विस्तृत मेरी कोड को संशोधित करने का प्रयास करें: एक रिक्त स्ट्रिंग पर विशेषता स्थापना

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"]); 
} 

:

विशेषता निकाला जा रहा है

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 = ""; 
} 

संपादित करें। एक एक्सएमएल दस्तावेज़ में केवल एक रूट नोड हो सकता है और आपका रिकॉर्ड 1 होना प्रतीत होता है। तो क्या इसका मतलब है कि आपकी पूरी फाइल में केवल एक रिकॉर्ड होगा? या आप की तरह

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

कोड के लिए धन्यवाद। यह विशेषता के लिए काम करता है। वैसे भी अगर मैं मौजूद हूं तो "विशेषता 1" नोड को हटा सकता हूं। – nav100

+0

मेरे पास विशेषता 1 नामक केवल एक बच्चा नोड है। अगर यह मौजूद है तो मैं हटाने की कोशिश कर रहा हूं। – nav100

+0

यदि आपके पास केवल एक विशेषता 1 नोड है, और यह पैरेंट नोड के नीचे है, तो उसके बाद आप XmlDocument बनाते हैं और इसमें फ़ाइल लोड करते हैं, बस कॉल करें: doc.RemoveChild (doc.SelectSingleNode ("विशेषता 1")); –

1

youcan उपयोग XmlNamedNodeMap.RemoveNamedItem विधि (नाम) कुछ ऐसा करने के लिए मतलब था। इसका उपयोग गुणों के लिए किया जा सकता है। यदि यह मिलान नोड नहीं मिला तो यह XmlNamedNodeMap या एक शून्य संदर्भ (विजुअल बेसिक में कुछ भी नहीं) से हटा दिया गया XmlNode वापस कर देगा।

[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); 

    } 
    } 
संबंधित मुद्दे