XML使用方法
XML(可扩展标记语言) 在C#中我们常用来当做一个小型的数据库来使用,我们可以将信息保存在XML文档中,或者从XML文档中获取数据。这样就必须使用到XML文档的数据读取。 XML文档的读取有两种方式: 一、利用XMLReader逐条读取,通过判断XML的NodeType属性来获取到XML文档中信息。 示例; /设置可以读取xml的dtd内容 XmlReaderSettings xs=new XmlReaderSettings(); xs.DtdProcessing=DtdProcessing.Parse; //用xmlreader对象读取 XmlReader xml = XmlReader.Create("../../Student.xml",xs); // bool b= xml.Read();//只进流的方式读取节点 //string n= xml.Name;//读取的节点的名称 //MessageBox.Show(n); while (xml.Read()) { string msg = ""; switch (xml.NodeType) { case XmlNodeType.Attribute: msg = "属性:" + xml.Name; break; case XmlNodeType.CDATA: msg = "CDATA节点:" + xml.Value; break; case XmlNodeType.Comment: msg = "注释:" + xml.Value; break; case XmlNodeType.DocumentType: msg = "dtd"; break; case XmlNodeType.Element: msg = "开始标记:" + xml.Name; break; case XmlNodeType.EndElement: msg = "结束标记:" + xml.Name; break; case XmlNodeType.Text: msg = "内容:" + xml.Value; break; case XmlNodeType.Whitespace: msg = "空白节点"; break; case XmlNodeType.XmlDeclaration: msg = "xml文件声明:"+xml.Name; break; default: break; } MessageBox.Show(msg); }
优点,每次只读取一条内容,比较节省系统的内容,适合大文件的读取。
二、利用XMLDocument对象一次性将整个XML文档加载到内存中,形成一个有层次关系的DOM树 示例: XmlDocument doc = new XmlDocument(); doc.Load("../../Part1.xml"); XmlElement xe = doc.DocumentElement; foreach (XmlNode item in xe.ChildNodes) { string province = item.Attributes["id"].Value.ToString(); comboBox1.Items.Add(province); }
1)XML文档新增节点
XmlDocument xml=new XmlDocument(); xml.load("../../Student.xml"); //创建一个节点 XmlNode stnode=xml.CreateElement("节点一");//这里是需要创建的节点的名字 //stnode.InnerText="";//这里可以设置节点中的文本 XmlAttribute sta=xml.CreateAtrribute("id");//这里 创建了一个名为id的属性 stnode.Attributes.Append(sta);//将这个属性添加到stnode节点中 xml.DocumentElement.AppendChild(stuNode)//最后将创建的节点添加到XML文档的根节点中 xml.Save("../../Student.xml");//最后将修改后的XML保存到磁盘中
2)XML文档修改节点 和新增一样,首先我们需要将整个XML文档加载到内存中。 然后我们需要获取到需要修改的节点 XmlNode=xml.selectSingleNode("//student[@stuNo='"+stuNo+"']"); //xpath 路径的写法有两种 //如果节点中右属性就用[ ]括起来 找到这个节点之后,重新给节点的InnerTextX属性赋值,就可以实现修改操作。
3)XML文档删除操作 首先,我们同样需要加载XML文档,然后我们需要获取到那个要删除的节点。同样的调用selectSingleNode方法, 最后我们使用xml.removeChild();就可以将节点移除,每次做完操作之后都别忘了调用xml.Save();将操作后的XML文档保存到磁盘中。
XMLDocument属性; DocumentElement 获取文档的根 XmlElement。 InnerText 获取或设置节点及其所有子节点的串联值。 AppendChild 将指定的节点添加到该节点的子节点列表的末尾 RemoveAll 移除当前节点的所有子节点和/或属性。 RemoveChild 移除指定的子节点。 ReplaceChild 用 newChild 节点替换子节点 oldChild。 WriteTo 将 XmlDocument 节点保存到指定的 XmlWriter。 Save 将 XML 文档保存到指定的位置。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |