How to ignore comments when reading a XML file into a XmlDocument?

.net, c#, comments, xml

Solution

You can use an `XmlReader` with `XmlReaderSettings.IgnoreComments` set to true:

XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
using (XmlReader reader = XmlReader.Create("input.xml", readerSettings))
{
    XmlDocument myData = new XmlDocument();
    myData.Load(reader);
    // etc...
}

(Found from here by searching for `XmlDocument ignore comments`)

Problem

I am trying to read a XML document with C#, I am doing it this way: ``` XmlDocument myData = new XmlDocument(); myData.Load("datafile.xml"); ``` anyway, I sometimes get comments when reading XmlNode.ChildNodes. For the benefit of who's experiencing the same requirement, here's how I did it at the end: ``` /** Validate a file, return a XmlDocument, exclude comments */ private XmlDocument LoadAndValidate( String fileName ) { // Create XML reader settings XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; // Exclude comments settings.ProhibitDtd = false; settings.ValidationType = ValidationType.DTD; // Validation // Create reader based on settings XmlReader reader = XmlReader.Create(fileName, settings); try { // Will throw exception if document is invalid XmlDocument document = new XmlDocument(); document.Load(reader); return document; } catch (XmlSchemaException) { return null; } } ``` Thank you Tommaso

Original source

Related problems