c# - 如何在 C# 中检查 xmlnode 的内部文本或值?

标签 c# xml

我创建了 xmlnodelist,我想处理没有子元素的元素的值。 在下面的代码中,我正在检查子节点,并且我从所有元素中得到 true,甚至 那些没有 child 的人。 我如何选择树中的最后一个元素并处理该值?

XmlDocument XDoc = new XmlDocument();
            XDoc.Load("d://avi.xml");
            XmlNodeList XList = XDoc.SelectNodes("//*");
            foreach (XmlElement XNode in XList)
            {
                    if (XNode.HasChildNodes == true)
                    {
                        Console.WriteLine("this node has childs");
                        continue;
                    }
                    else Console.WriteLine("this node dont have childs");      
            } 


<level1>
    <level2>
        <level3>header3</level3>
        <level4>another</level4>
        <level31>header31</level31>
    </level2>
    <level2>
        <level3>111</level3>
        <level31>nn</level31>
    </level2>
</level1>

最佳答案

使用 Linq to Xml 来实现此目的怎么样?

var xElem = XElement.Parse(xml);

var leafElements = xElem.Descendants()
                        .Where(e => !e.HasElements)
                        .ToList();

关于c# - 如何在 C# 中检查 xmlnode 的内部文本或值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867107/

相关文章:

c - 将大量 xml 文件转换为文本时出现段错误

xml - XSLT:拆分字符串并对每个字符执行某些操作

c# - C#:String.IndexOf到FileStream.Seek

c# - UWP MediaCapture 拒绝访问相机

c# - ASP.NET 项目的 Oracle 到 SQL Server 数据库迁移

java - 需要有关将元素属性转换为元素的 xslt 逻辑的帮助

xml - 通过指定另一个值来拉取一个值

java - Spring : Configure xml to make a controller return a view depending on a parameter

c# - SOAP 调用中的授权 header

c# - 什么时候使用缓存太多了?