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

综上,共勉!

相关推荐
脑电信号要分类43 分钟前
将多张图片拼接成一个pdf文件输出
pdf·c#·apache
njsgcs1 小时前
c# solidworks 折弯系数检查
开发语言·c#
格林威2 小时前
工业相机图像采集:Grab Timeout 设置建议——拒绝“假死”与“丢帧”的黄金法则
开发语言·人工智能·数码相机·计算机视觉·c#·机器视觉·工业相机
唐青枫3 小时前
C#.NET SignalR + Redis Backplane 深入解析:多节点部署与跨实例消息同步
c#·.net
ChoSeitaku5 小时前
NO.4|protobuf网络版通讯录|httplib|JSON、XML、ProtoBuf对比
xml·json
FL162386312915 小时前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#
love530love17 小时前
OpenClaw 手机直连配置全流程
人工智能·windows·python·智能手机·c#·agent·openclaw
bcbobo21cn18 小时前
C# byte类型和byte数组的使用
开发语言·c#·字节数组·byte类型
月巴月巴白勺合鸟月半20 小时前
一次PDF文件的处理(一)
pdf·c#
大鹏说大话1 天前
Java 锁膨胀机制深度解析:从偏向锁到重量级锁的进化之路
开发语言·c#