无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”

今天开发C#项目时,有一个需要读取XML的功能点。编码过程中遇到了如标题所示的异常,如下图所示:

查询官网后得知XmlComment是注释节点的类型,如下图所示:

于是得出结论,使用XmlDocument去解析XML文件时,注释也会作为一个节点被加载到节点列表里。因此后续如果需要添加注释的话,可以考虑在节点里增加一个属性“comment”或者“text”专门用来存放注释信息,这样可以大大增加XML文件对于其他程序的可读性。如果说仅仅是自己使用的话,可以在程序里进行类型的判断。遍历XML节点时判断一下节点属性,如果是注释那么就跳过,代码如下:

foreach (XmlNode data in nodeList) {

    if (data.NodeType == XmlNodeType.Comment) { continue; }

    XmlElement element = (XmlElement)data;
}

  

原文地址:https://www.cnblogs.com/xuzichao/p/11011010.html

时间: 2024-08-27 21:21:20

无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”的相关文章

System.InvalidCastException: 无法将类型为“DEduSys.SqlServerDal.sysManageUser”的对象强制转换为类型“DEduSys.IDal.IsysManageUser

出现 System.InvalidCastException: 无法将类型为“DEduSys.SqlServerDal.sysManageUser”的对象强制转换为类型“DEduSys.IDal.IsysManageUser”.这种类型错误,多数是数据层相关类没有实现相对应的接口.例如  public  class sysManageUser改为   public  class sysManageUser:IsysManageUser即可

无法将类型为“System.Decimal”的对象强制转换为类型“System.Char[]”。

在用微软的SSIS操作ORACLE 数据源的时候碰到以下报错信息: [ADO NET Destination [13455]] 错误: 数据插入期间出现异常,从提供程序返回的消息为:无法将类型为"System.Decimal"的对象强制转换为类型"System.Char[]". SQL语句: select A FROM TABLE WHERE B .... 字段A为NUMBER类型,但是数据库中有空值,所以报错,只是报错信息不标准 SQL改为 SELECT case

C#WPF无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“System.Speech.Internal.SapiInterop.ISpDataKey”。解决办法

this.speecher.SpeakAsync(textToSpeak); // 报错 无法将类型为"System.__ComObject"的 COM 对象强制转换为接口类型"System.Speech.Internal.SapiInterop.ISpDataKey".此操作失败的原因是对 IID 为"{14056581-E16C-11D2-BB90-00C04F8EE6C0}"的接口的 COM 组件调用 QueryInterface 因以下错

无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类

错误描述 e = {"无法将类型为"System.__ComObject"的 COM 对象强制转换为接口类型"OpcRcw.Da.IOPCServer".此操作失败的原因是对 IID 为"{39C13A4D-011E-11D0-9675-0020AFD8ADB3}"的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOT

【Winform】 无法将类型为“System.Windows.Forms.SplitContainer”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”。

问题:将dotnet framework 4.0 切换到2.0时,编译没有问题,在运行时出现如下错误:System.InvalidCastException: 无法将类型为“System.Windows.Forms.SplitContainer”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”. 解决方法: 注释掉如下代码(此代码为设计器自动生成代码) //((System.ComponentModel.ISupportInitialize

保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.Media.Imaging.BitmapImage”。

保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.Media.Imaging.BitmapImage”. try { System.Windows.Controls.MenuItem menuitem = sender as System.Windows.Controls.MenuItem; BitmapImage bitmap = (BitmapI

无法将类型为“System.Security.Principal.GenericIdentity”的对象强制转换为类型“System.Web.Security.FormsIdentity”。

这次的系统包含两个子系统,所以做了一个分角色的身份验证系统. web.config <system.web>中设置 <authentication mode="Forms"> <!--验证方式为窗体验证--> <forms name=".ASPXAUTH" loginUrl="~/login.aspx" protection="All" timeout="60" p

无法将类型为“Shell32.ShellClass”的 COM 对象强制转换为接口类型“Shell32.IShellDispatch 6”

今天想研究一下mp3 然后在输出mp3长度的时候用了如下代码(网上搬得): string file = "D:\\AccountDaemon\\My Music\\MyMusics\\Luxtos.mp3"; ShellClass sh = new ShellClass(); Folder dir = sh.NameSpace(Path.GetDirectoryName(file)); FolderItem item = dir.ParseName(Path.GetFileName(f

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错. (异常来 自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) 经过多般折腾,还是没什么更好的办法.