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

综上,共勉!

相关推荐
eggcode25 分钟前
C#读写Bson格式的文件
c#·json·bson
爱说实话1 小时前
C# 20260109
开发语言·c#
susu10830189111 小时前
maven-3.9.12的conf配置settings.xml
xml·java·maven
一心赚狗粮的宇叔10 小时前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
cplmlm11 小时前
EF Core使用CodeFirst生成postgresql数据库表名以及字段名用蛇形命名法,而类名仍使用驼峰命名
c#
lingxiao1688813 小时前
WebApi详解+Unity注入--下篇:Unity注入
unity·c#·wpf
lingxiao1688815 小时前
WebApi详解+Unity注入--中篇:.net core的WebAPI
unity·c#·.netcore
ServBay16 小时前
C# 成为 2025 年的编程语言,7个C#技巧助力开发效率
后端·c#·.net
故事不长丨19 小时前
C#进制转换:从基础原理到实战应用
开发语言·c#·进制转换·16进制·2进制·10进制