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

综上,共勉!

相关推荐
初九之潜龙勿用10 小时前
C# 操作Word模拟解析HTML标记之背景色
开发语言·c#·word·.net·office
方芯半导体11 小时前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
时光追逐者11 小时前
使用 MWGA 帮助 7 万行 Winforms 程序快速迁移到 WEB 前端
前端·c#·.net
好好研究11 小时前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
老骥伏枥~12 小时前
【C# 入门】程序结构与 Main 方法
开发语言·c#
全栈师13 小时前
java和C#的基本语法区别
java·开发语言·c#
钰fly13 小时前
联合编程(加载单个工具,ini读写,图片读写,setting存储)
c#
FuckPatience14 小时前
C# 对象初始化器对属性赋值vs构造函数里对属性赋值
c#
m0_7482331716 小时前
C语言vsC#:核心差异全解析
c语言·开发语言·c#
MyBFuture16 小时前
C# 关于联合编程基础
开发语言·c#·visual studio·vision pro