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

综上,共勉!

相关推荐
mudtools12 分钟前
解放双手!使用Roslyn生成代码让你的 HTTP 客户端开发变得如此简单
低代码·c#·.net
张人玉3 小时前
WPF 数据绑定与转换器详解
c#·wpf·light
主宰者3 小时前
WPF CalcBinding简化判断逻辑
c#·.net·wpf
就是有点傻13 小时前
使用PaddleOCRSharp大模型精选文字识别
c#
LeonDL16814 小时前
【通用视觉框架】基于C#+Winform+OpencvSharp开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·winform·opencvsharp·机器视觉软件框架·通用视觉框架·机器视觉框架
数据的世界0115 小时前
技术变革:为何C#与.NET是未来的开发方向
java·c#·.net
大龄Python青年15 小时前
C#快入教程:Linux安装.NET
linux·c#·.net
我是唐青枫16 小时前
C#.NET Random 深入解析:随机数生成原理与最佳实践
c#·.net
光头闪亮亮16 小时前
电子发票解析工具-c#桌面应用开发案例详解
c#
咕白m62518 小时前
如何通过 C# 提取 PDF 图片?单页与全文档提取
c#·.net