小编Avi*_*.S.的帖子

选择所有节点

我想获取xml文件中的所有元素.

我只获得了第一个元素.

XmlDocument XDoc = new XmlDocument();
            XDoc.Load("d://avi.xml");        
            XmlNodeList XList = XDoc.SelectNodes("//level1");
            foreach (XmlNode XNode in XList)
            {
                Console.WriteLine("the current node is - {0}", XNode.Name);
            }
Run Code Online (Sandbox Code Playgroud)

xml:

<?xml version="1.0" encoding="utf-8"?>
<level1>
    <level2>
        <level3>header3</level3>
            <level4>another</level4>
        <level31>header31</level31>
    </level2>
    <level2>
        <level3>nnn</level3>
        <level31>nnnnn</level31>
    </level2>
</level1>
<!--test test-->
Run Code Online (Sandbox Code Playgroud)

c# xml

5
推荐指数
1
解决办法
7397
查看次数

如何在foreach循环中删除xmlnode?

在下面的代码中,我使用foreach循环来检查nodelist中的每个节点并删除其中的一些节点.删除一个节点后,foreach循环抛出以下错误:"元素列表已更改.枚举操作无法继续".我怎么能避免呢?

public static XmlNodeList Scan(XmlNodeList nodeList)
        {
            string elementValue = null;
            foreach (XmlNode xmlElement in nodeList)
            {
                elementValue = xmlElement.InnerText;
                if (elementValue.Length >= 6 && elementValue.Substring(0, 3) == "999")
                {
                    continue;
                }
                else 
                {
                    XmlNode node = xmlElement.ParentNode;
                    node.RemoveChild(xmlElement);
                }
            }

            return nodeList;
        }
Run Code Online (Sandbox Code Playgroud)

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

xml ×1