当前位置:编程学习 > C#/ASP.NET >>

关于XML文件修改的问题

想请教一下大侠们,是不是XmlElement才有GetAttribute方法,但是我用下面的语句却提示““System.Xml.XmlNode”不包含“GetAttribute”的定义,并且找不到可接受类型为“System.Xml.XmlNode”的第一个参数的扩展方法“GetAttribute”(是否缺少 using 指令或程序集引用?)”,我已经转换了类型,为什么还会报错呢?我的目的是查找xe下面的所有子节点,满足要求就删除,如果用FOREACH语句,若有多个满足条件的子节点,只会删除一个,所以才用FOR循环来实现
for (int h = 0; h < xe.ChildNodes.Count; h++)
{
    if ( (XmlElement)xe.ChildNodes[h].GetAttribute("BelowToFolder").Substring(0, pathLength) == txtSourceFolderPath.Text)   
                                xe.RemoveChild(xe.ChildNodes[h]);
}


FORACH的代码如下:
                        foreach (XmlNode xnFileName in nodeListProductChild)
                        {
                            XmlElement xmlElementFileName = (XmlElement)xnFileName;
                            //如果文件节点的所属文件夹和本次选择的源路径一致,则删除节点然后再写入,以防出现重复的记录
                            int pathLength = txtSourceFolderPath.Text.Length; //获取源路径的文件长度
                            if (xmlElementFileName.GetAttribute("BelowToFolder").Substring(0, pathLength) == txtSourceFolderPath.Text)
                                //xnFileName.ParentNode.RemoveChild(xnFileName);
                                xe.RemoveChild(xnFileName);

                        }
--------------------编程问答-------------------- 原来将if那个改为
 ((XmlElement)xe.ChildNodes[h]).GetAttribute("BelowToFolder")
就可以解决问题了! --------------------编程问答-------------------- 哦,解决就好.. --------------------编程问答-------------------- 建议:xml遍历没必要使用for 或者 foreach;采用xpath来获取满足条件的节点
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,