当前位置: 首页 > news >正文

广州建设厅官方网站医院网站建设实施方案

广州建设厅官方网站,医院网站建设实施方案,上海企业登记全程电子化服务平台,网站运作模式Xml文件相关操作 C#中的XML是一种可扩展标记语言#xff08;Extensible Markup Language#xff09;#xff0c;用于存储和交换数据。在C#中#xff0c;我们可以使用内置的System.Xml命名空间来处理和操作XML数据。 一、关键概念 1. 标签#xff08;Tags#xff09; …Xml文件相关操作 C#中的XML是一种可扩展标记语言Extensible Markup Language用于存储和交换数据。在C#中我们可以使用内置的System.Xml命名空间来处理和操作XML数据。 一、关键概念 1. 标签Tags XML 使用标签来标识数据的起始和结束。标签由尖括号包围可以包含标签名称和属性。 2. 元素Elements 元素是包含数据的基本单位。它由一个起始标签和一个结束标签组成。例如nameJohn/name 是一个名为 “name” 的元素其内容为 “John”。 3. 属性Attributes 属性提供关于元素的附加信息。它们以名称-值对的形式存在于元素的起始标签中。例如person age25John/person 中的 “age” 是一个属性其值为 “25”。 4. 命名空间Namespaces 命名空间用于避免元素和属性名称的冲突。它通过给元素和属性添加命名空间前缀来实现。例如ns:person ns:age25John/ns:person 中的 “ns” 是命名空间前缀。 5. 注释Comments 注释用于在 XML 中添加注释信息以提供更多的说明和解释。注释以 !-- 开始以 -- 结束。 6. CDATACharacter Data CDATA 用于在 XML 中包含特殊字符如 和 而不被解析器解释为标签。CDATA 部分以 ![CDATA[ 开始以 ]] 结束。 二、 XML操作版本1 1. 创建XML文档 使用XmlDocument类来创建一个新的XML文档并添加元素、属性和文本等内容。 XmlDocument doc new XmlDocument(); XmlElement root doc.CreateElement(Root); doc.AppendChild(root);2. 加载和解析XML文档 可以使用XmlDocument或XmlReader类来加载和解析XML文档 XmlDocument doc new XmlDocument(); doc.Load(path/to/xml/file.xml);XmlReader reader XmlReader.Create(path/to/xml/file.xml); while (reader.Read()) {// 处理XML数据 }3. 查询和筛选XML数据 // 使用XPath查询 XmlNodeList nodes doc.SelectNodes(//Book[Price 10]);// 使用LINQ to XML查询 var books from book in doc.Descendants(Book)where (int)book.Element(Price) 10select book;4. 修改和更新XML数据 可以通过修改XmlDocument对象的属性和元素来更新XML数据 XmlElement bookElement doc.CreateElement(Book); XmlAttribute titleAttribute doc.CreateAttribute(Title); titleAttribute.Value C# Programming; bookElement.Attributes.Append(titleAttribute);XmlElement priceElement doc.CreateElement(Price); priceElement.InnerText 20; bookElement.AppendChild(priceElement);XmlNode root doc.DocumentElement; root.AppendChild(bookElement);// 保存修改后的XML文档 doc.Save(path/to/xml/file.xml);二、 XML操作版本2 1. 创建XML /// summary /// 创建XML文件 /// /summary /// param namexmlPath/param private static void CreateXmlFile(string xmlPath) {try{//定义一个XDocument结构XDocument myXDoc new XDocument(new XElement(Users,new XElement(User, new XAttribute(ID, 111111),new XElement(name, EricSun),new XElement(password, 123456),new XElement(description, Hello Im from Dalian)),new XElement(User, new XAttribute(ID, 222222),new XElement(name, Ray),new XElement(password, 654321),new XElement(description, Hello Im from Jilin))));//保存此结构即我们预期的xml文件myXDoc.Save(xmlPath);string aa myXDoc.ToString();}catch (Exception ex){Console.WriteLine(ex.ToString());} }2. 查询和筛选XML数据 获得根节点下name子节点 /// summary /// 遍历xml信息 /// /summary /// param namexmlPath/param private static void GetXmlNodeInformation(string xmlPath) {try{//定义并从xml文件中加载节点根节点XElement rootNode XElement.Load(xmlPath);//XElement rootNode2 XElement.Parse(xmlPath);//查询语句: 获得根节点下name子节点此时的子节点可以跨层次孙节点、重孙节点......IEnumerableXElement targetNodes from target in rootNode.Descendants(name)select target;foreach (XElement node in targetNodes){Console.WriteLine(name {0}, node.Value);}}catch (Exception ex){Console.WriteLine(ex.ToString());} }获取ID属性值等于111111并且函数子节点的所有User节点 /// summary /// 遍历xml信息 /// /summary /// param namexmlPath/param private static void GetXmlNodeInformation(string xmlPath) {try{//定义并从xml文件中加载节点根节点XElement rootNode XElement.Load(xmlPath);//XElement rootNode2 XElement.Parse(xmlPath);//查询语句: 获取ID属性值等于111111并且函数子节点的所有User节点并列条件用符号连接IEnumerableXElement myTargetNodes from myTarget in rootNode.Descendants(User)where myTarget.Attribute(ID).Value.Equals(111111) myTarget.HasElementsselect myTarget;foreach (XElement node in myTargetNodes){Console.WriteLine(name {0}, node.Element(name).Value);Console.WriteLine(password {0}, node.Element(password).Value);Console.WriteLine(description {0}, node.Element(description).Value);}}catch (Exception ex){Console.WriteLine(ex.ToString());} }3. 修改和更新XML数据 /// summary /// 修改xml信息 /// /summary /// param namexmlPath/param public static void ModifyXmlNodeInformation(string xmlPath) {try{//定义并从xml文件中加载节点根节点XElement rootNode XElement.Load(xmlPath);//查询语句: 获取ID属性值等于222222或者等于777777的所有User节点或条件用||符号连接IEnumerableXElement targetNodes from target in rootNode.Descendants(User)where target.Attribute(ID).Value 222222|| target.Attribute(ID).Value.Equals(777777)select target;//遍历所获得的目标节点集合foreach (XElement node in targetNodes){//将description节点的InnerText设置为Hello, Im from USA.node.Element(description).SetValue(Hello, Im from USA.);}//保存对xml的更改操作rootNode.Save(xmlPath);}catch (Exception ex){Console.WriteLine(ex.ToString());} }4. 添加xml信息 /// summary /// 添加xml信息 /// /summary /// param namexmlPath/param private static void AddXmlNodeInformation(string xmlPath) {try{//定义并从xml文件中加载节点根节点XElement rootNode XElement.Load(xmlPath);//定义一个新节点XElement newNode new XElement(User, new XAttribute(ID, 999999),new XElement(name, Rose),new XElement(password, 456123),new XElement(description, Hello, Im from UK.));//将此新节点添加到根节点下rootNode.Add(newNode);//Add 在 XContainer 的子内容的末尾添加内容。//AddFirst 在 XContainer 的子内容的开头添加内容。//AddAfterSelf 在 XNode 后面添加内容。//AddBeforeSelf 在 XNode 前面添加内容。//保存对xml的更改操作rootNode.Save(xmlPath);}catch (Exception ex){Console.WriteLine(ex.ToString());} }5. 删除xml信息 /// summary /// 删除xml信息 /// /summary /// param namexmlPath/param private static void DeleteXmlNodeInformation(string xmlPath) {try{//定义并从xml文件中加载节点根节点XElement rootNode XElement.Load(xmlPath);//查询语句: 获取ID属性值等于999999的所有User节点IEnumerableXElement targetNodes from target in rootNode.Descendants(User)where target.Attribute(ID).Value.Equals(999999)select target;//将获得的节点集合中的每一个节点依次从它相应的父节点中删除targetNodes.Remove();//保存对xml的更改操作rootNode.Save(xmlPath);}catch (Exception ex){Console.WriteLine(ex.ToString());} }四、XML与实体之间的转换 1. 实体转化为XML /// summary /// 实体转化为XML /// /summary public static string ParseToXmlT(this T model, string fatherNodeName) {var xmldoc new XmlDocument();var modelNode xmldoc.CreateElement(fatherNodeName);xmldoc.AppendChild(modelNode);if (model ! null){foreach (PropertyInfo property in model.GetType().GetProperties()){var attribute xmldoc.CreateElement(property.Name);if (property.GetValue(model, null) ! null)attribute.InnerText property.GetValue(model, null).ToString();//else// attribute.InnerText [Null];modelNode.AppendChild(attribute);}}return xmldoc.OuterXml; }2. XML转换为实体,默认 fatherNodeName“body” /// summary /// XML转换为实体,默认 fatherNodeNamebody /// /summary /// typeparam nameT/typeparam /// param namexml/param /// param namefatherNodeName/param /// returns/returns public static T ParseToModelT(this string xml, string fatherNodeName body) where T : class ,new() {if (string.IsNullOrEmpty(xml))return default(T);var xmldoc new XmlDocument();xmldoc.LoadXml(xml);T model new T();var attributes xmldoc.SelectSingleNode(fatherNodeName).ChildNodes;foreach (XmlNode node in attributes){foreach (var property in model.GetType().GetProperties().Where(property node.Name property.Name)){if (!string.IsNullOrEmpty(node.InnerText)){property.SetValue(model,property.PropertyType typeof(Guid)? new Guid(node.InnerText): Convert.ChangeType(node.InnerText, property.PropertyType));}else{property.SetValue(model, null);}}}return model; }3. XML转实体 /// summary /// XML转实体 /// /summary /// typeparam nameT/typeparam /// param namexml/param /// param nameheadtag/param /// returns/returns public static ListT XmlToObjListT(this string xml, string headtag) where T : new() {var list new ListT();XmlDocument doc new XmlDocument();PropertyInfo[] propinfos null;doc.LoadXml(xml);XmlNodeList nodelist doc.SelectNodes(headtag);foreach (XmlNode node in nodelist){T entity new T();if (propinfos null){Type objtype entity.GetType();propinfos objtype.GetProperties();}foreach (PropertyInfo propinfo in propinfos){//实体类字段首字母变成小写的 string name propinfo.Name.Substring(0, 1) propinfo.Name.Substring(1, propinfo.Name.Length - 1);XmlNode cnode node.SelectSingleNode(name);string v cnode.InnerText;if (v ! null)propinfo.SetValue(entity, Convert.ChangeType(v, propinfo.PropertyType), null);}list.Add(entity);}return list; }
http://www.zqtcl.cn/news/246472/

相关文章:

  • 四会网站建设服装店网站建设规划书
  • 网站规范化建设海南百度网站建设
  • 商业网站建设设计公司平面ui设计网站
  • 南宁建站免费模板网页无法访问如何解决h5
  • 怎么查网站后台地址电商网站怎样做优化才最合理
  • 太原网站建设总部在哪服务器做多个网站
  • 自己做网站怎么能被访问Net网站开发招聘
  • 春晗环境建设有限公司网站wordpress伪静态卡死
  • 网站建设后期维护流程车培训网站建设
  • 云南建设企业网站wordpress用户角色权限
  • 代码做网站常用单词成品短视频网站源码搭建
  • 北京网站建设推四川省建设厅燃气网站
  • 网站 功能呢网站建设设计师的工作内容
  • 网站设计素材包微信公众号平台官网免费注册
  • 做设计灵感的网站网站网站建设
  • 华强北附近网站建设电商网站建设规划
  • 泰和网站制作长尾词排名优化软件
  • 国外做的好的鲜花网站万网二手已备案域名
  • 那个网站做的系统最好开奖视频网站开发
  • 学设计的网站推荐南京做网站南京乐识专业
  • 企业网站建设调查问卷重庆网站制作外包
  • 要建设一个网站需要什么北京优化网站公司
  • 多语言网站建设方案大同建设网站
  • 测网站打开的速度的网址wordpress 逻辑代码
  • 网站代码开发徐州网站建设青州陈酿
  • 建网站的软件有哪些做网站怎么挣钱赚钱
  • 徐州市建设局招投标网站谷歌网站的主要内容
  • 门户网站建设工作情况汇报花店网站建设课程设计论文
  • 长春绿园网站建设哪里制作企业网站
  • 建设网站计划ppt模板核酸二维码