C#读取string类型的xml过滤注释内容

来源:互联网 发布:东华软件面试题答案 编辑:程序博客网 时间:2024/06/05 17:56

利用XmlDocument绑定TreeView时,如果xml内容中包含注释,则注释也会被作为一个节点,此时会报错。

测试xml片段,保存在result。

<?xml version="1.0" encoding="utf-8" ?><root  text="类别" value="类别">    <!-- 这是性别的选择项--><sex text="性别" value="性别"><add text="男" value="男"></add><add text="女" value="女"></add></sex><!-- 这是民族的选择项--><nation  text="民族" value="名族"><add text="汉族" value="汉族"></add><add text="满族" value="满族"></add></nation></root>

c#部分代码

#regionprivate void AddTreeView(string result)        {            XmlDocument xmldoc;            //XmlNode root; //xmlNode,            xmldoc = new XmlDocument();            try            {                                XmlReader reader = new XmlTextReader(new StringReader(result));                XmlReaderSettings settings = new XmlReaderSettings();                settings.IgnoreComments = true;                XmlReader xmlreader = XmlReader.Create(reader, settings);                xmldoc.Load(xmlreader);                treeView1.BeginUpdate();                //XmlElement xe = (XmlElement)xmldoc.SelectSingleNode("root");                XmlElement xe = xmldoc.DocumentElement;                TreeNode root = new TreeNode();                root.Name = xe.GetAttribute("text");                root.Text = xe.GetAttribute("value");                root = GetChildNodes(xe, root);                treeView1.Nodes.Add(root);                treeView1.EndUpdate();            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);             }        }        private TreeNode GetChildNodes(XmlElement xe, TreeNode upNode)        {            if(xe.HasChildNodes)          {                foreach (XmlNode node in xe.ChildNodes)                {                     XmlElement xlt = (XmlElement)node;                    TreeNode tn = new TreeNode();                    tn.Text = xlt.GetAttribute("text");                    tn.Name = xlt.GetAttribute("value");                    GetChildNodes(xlt,tn);                    upNode.Nodes.Add(tn);                }           }           return upNode;        }#endregion





0 0
原创粉丝点击