【精】C# 精确判断XML是否存在子节点

天发现一个奇怪的问题,当我想判断一个xml node是否是孤节点,即没有子节点时,用常规判断并没有得到我想要的结果,我一度以为是我记错了,我记得之前一直那么用的。。。。

经查在有InnerText的情况下,C#的XmlNode类提供的ChildNodes以及HasChildNodes属性都没法判断这种情况,如下:

csharp 复制代码
             //node = "<msgBus>TibRv</msgBus>";
              node.HasChildNodes; //true
              node.ChildNodes.Count; //>0

如此的话,那就达不到我要的结果,会影响逻辑,那。。。。

那就在判断了HasChildNodes以后继续判断ChildNodes[0].Name=="#text"来判断,不就行了

所以,解决方法如下:

csharp 复制代码
        public bool IsLeafTextNode(XmlNode node)
        {
            if (node.HasChildNodes && node.ChildNodes[0] != null && node.ChildNodes[0].Name != "#text")
            {
                return true;//代表有子节点
            }
            else
            {
                return false;//代表无子节点
            }
        }

综上,共勉!

相关推荐
2501_930707783 小时前
使用C#代码在 PowerPoint 中组合或取消组合形状
开发语言·c#
baivfhpwxf202311 小时前
c# 中对像之间频繁的转换会慢吗?
开发语言·c#
加号313 小时前
【C#】 实现 XRC 异或冗余校验:原理与实践
c#·xrc
小钻风336613 小时前
Java + Spring Boot 操作 Kafka 完整学习指南
c#·linq
叫我少年13 小时前
C# 程序的常规结构 — 命名空间、类型、入口点与表达式
c#
步步为营DotNet18 小时前
探秘.NET 11:C# 14 特性在后端性能优化中的深度应用
性能优化·c#·.net
Chris _data18 小时前
C# 与 PLC Modbus RTU 通信实践:从单例到线程安全的连接监控
开发语言·安全·c#
Chris _data18 小时前
C# WinForms 后台轮询 Modbus 数据与 UI 更新实践
开发语言·ui·c#
魔法阵维护师19 小时前
从零开发游戏需要学习的c#模块,第二十四章(场景管理 —— 标题、游戏、结束画面)
学习·游戏·c#
唐青枫19 小时前
别把登录写散了:C#.NET IdentityServer4 统一认证与 JWT 授权实战
c#·.net