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