Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XmlDocument reading XML Document comment Issue

I am using XmlDocument to parse xml file, but it seems that XmlDocument is always reading xml comments as a xml nodes:

My C# code

XmlDocument xml = new XmlDocument();
xml.Load(filename);

foreach (XmlNode node in xml.FirstChild.ChildNodes) {

}

Xml file

<project>
    <!-- comments-->
    <application name="app1">
        <property name="ip" value="10.18.98.100"/>
    </application>
</project>

Shouldn't .NET skip XML comments?

like image 380
icn Avatar asked Jan 19 '23 09:01

icn


1 Answers

No, but node.NodeType schould by XmlNodeType.Comment.
If it wouldn't read the comments you also couldn't access them, but you can do something like the following to get all "real nodes":

XDocument xml = XDocument.Load(filename);
var realNodes = from n in xml.Descendants("application")
                where n.NodeType != XmlNodeType.Comment
                select n;

foreach(XNode node in realNodes)
{ 
    //your code
}

or without LINQ/XDocument:

XmlDocument xml = new XmlDocument();
xml.Load(filename);

foreach (XmlNode node in xml.FirstChild.ChildNodes)
{
     if(node.NodeType != XmlNodeType.Comment)
     {
         //your code
     }
}
like image 105
Christoph Fink Avatar answered Jan 28 '23 20:01

Christoph Fink