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?
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
}
}
Try this
XmlDocument xml = new XmlDocument();
xml.Load(filename);
foreach (XmlNode node in xml.FirstChild.ChildNodes)
{
if(node.GetType() == XmlNodeType.Comment)
{
//Do nothing
}
else
{
//Your code goes here.
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.