【精】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;//代表无子节点
            }
        }

综上,共勉!

相关推荐
软件黑马王子3 小时前
2025Unity超详细《坦克大战3D》项目实战案例(上篇)——UI搭建并使用和数据持久化(附资源和源代码)
游戏·ui·unity·c#
曲大家13 小时前
C#生成控笔视频,完整版
c#·绘图
ajassi200014 小时前
开源 C# 快速开发(三)复杂控件
开发语言·开源·c#
WangMing_X14 小时前
C#上位机软件:2.1 .NET项目解决方案的作用
开发语言·c#
Sammyyyyy18 小时前
Go与C# 谁才更能节省内存?
java·golang·c#
Dream achiever18 小时前
7.WPF 的 TextBox 和 TextBlock 控件
开发语言·c#·wpf
爱吃小胖橘18 小时前
Unity-动画子状态机
3d·unity·c#·游戏引擎
大飞pkz19 小时前
【设计模式】适配器模式
开发语言·设计模式·c#·适配器模式
大飞pkz19 小时前
【设计模式】外观模式
开发语言·设计模式·c#·外观模式