,,C# 操作XML文档 使用XmlDocument类方法

,,C# 操作XML文档 使用XmlDocument类方法

对于大型XML文档,可以使用XmlReader类来读取它们。因为XmlReader使用Steam(流)读取文件,所以不会消耗太多内存。让我们看看如何使用XmlDocument类。有需要的朋友可以参考一下。

W3C制定了XML DOM标准。许多编程语言都提供了支持W3C XML DOM标准的API。在我的上一篇文章中,我介绍了如何使用Javascript加载和查询XML文档。在本文中,我将介绍。网。它支持并扩展了W3C XML DOM标准。它首先将整个XmlDocument加载到内存中,然后对XML文档进行操作。因此,如果XML文档太大,不建议使用XML document类,因为它会消耗太多内存。对于大型XML文档,可以使用XmlReader类来读取它们。因为XmlReader使用Steam(流)读取文件,所以不会消耗太多内存。让我们看看如何使用XmlDocument类。(一) 加载加载XML常用的方法有三种:public virtual void load(字符串文件名);公共虚拟空负载(流in Stream);public virtual void LoadXml(字符串XML);下面的代码演示了如何使用它们:如下复制代码:XML document XML doc=new XML document();xmlDoc。load(' XML file 1 . XML ');entity retrievedAnnotation=_ org service。Retrieve('annotation ',new Guid(' C1 b 13 c 7 f-F430-E211-8fa 1-984 be 1731399 '),new columns et(true));byte[] fileContent=Convert。from base 64 string(retrievedAnnotation[' document body ']。ToString());memory stream ms=new memory stream(file content);XML document XML doc 2=new XML document();xmlDoc2。负载(毫秒);string str=@ ' Customers customer id=' 01 ' city=' Beijing ' country=' China ' name=' Lenovo '//Customers;XML document XML doc 3=new XML document();xmlDoc3。load XML(str);(二) 查询您可以使用XPath来查询XML元素、属性和文本。具体定义见w3school。您应该首先理解XPath表达式:

表示

形容

节点名

选择此节点的所有子节点。

/

从根节点中选择。

//

从当前节点中选择文档中与选择匹配的节点,而不考虑它们的位置。

选择当前节点。

.

选择当前节点的父节点。

@

选取属性。我们主要使用两个方法来查询可扩展标记语言文档,选择节点(xpath表达式)和选择单个节点(xpath表达式).选择节点返回一个XmlNodeList对象,也就是所有符合xpath表达式的可扩展标记语言节点都将会被返回,你需要对返回的结果进行遍历选择单一节点只返回第一个符合xpath表达式的节点,或者返回零。以下面的可扩展标记语言文件为例,我们进行一些演示:复制代码代码如下:可扩展标记语言版本='1.0 '编码='utf-8 '?客户客户id='01 '城市='北京'国家='中国'姓名='联想'联系人性别='女'头衔='支持'李/联系人客户id='02 '城市='阿姆斯特丹'国家='荷兰'姓名='壳牌'联系人性别='男'头衔='销售人员'亚伦巴比特/联系人联系人联系人性别='女'头衔='销售经理'黛西卡贝尔/联系人联系人联系人性别='男'头衔='销售人员'加布里埃尔Eads/联系人/客户/客户1。返回所有接触节点:XmlNodeList nodelist=xmlDoc .选择节点('/客户/客户/联系人');foreach(节点列表中的XmlNode节点){控制台.WriteLine(节点外部XML);} 输出结果为:联系人性别='女'职衔='支持'李李/联系人联系人性别='男'职衔='销售人员'亚伦巴比特/联系人联系人性别='女'职衔='销售经理'黛西卡贝尔/联系人联系人性别='男'职衔='销售人员'加布里埃尔Eads/联系人2。返回身份证明(识别)为02的客户:XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer[@ id=' 02 ']');控制台WriteLine(节点外部XML);输出结果为:客户id='02 '城市='阿姆斯特丹'国家='荷兰'姓名='壳牌'联系人性别='男性'头衔='销售人员'亚伦巴比特/联系人联系人性别='女性'头衔='销售经理'黛西卡贝尔/联系人联系人性别='男性'头衔='销售人员'加布里埃尔Eads/联系人/客户3。返回含有接触名为李莉的联系人:XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer/Contact[text()=' Li Li ']');控制台WriteLine(节点外部XML);输出结果:联系人性别='女'职称='支持'李丽/联系人4。返回含有接触名为李莉的顾客。

注意和3的区别:XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer[Contact/text()=' Li Li ']');控制台WriteLine(节点外部XML);输出结果:客户id='01 '城市='北京'国家='中国'姓名='联想'联系人性别='女'职称='支持'李莉/联系人/客户5。(1) 获取外部xml: XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer[@ id=' 02 ']');控制台WriteLine(节点外部XML);(2) 获取内部xml: XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer[@ id=' 02 ']');控制台WriteLine(节点inner XML);(3) 获取text XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer/Contact[text()=' Li Li ']');控制台WriteLine(节点InnerText);(4) 获取属性XmlNode node=xmlDoc .SelectSingleNode('/Customers/Customer/Contact[text()=' Li Li ']');控制台WriteLine(节点。属性['性别']。值);(三) 创建以创建以下可扩展标记语言文档为例:复制代码代码如下:可扩展标记语言版本='1.0 '编码='UTF八号'?客户客户id='01 '姓名='联想'国家='中国'城市='北京'联系人头衔='支持'性别='女'李丽/联系人/客户/客户复制代码代码如下:var XML doc=new XML文档();//首先创建可扩展标记语言声明xmlDoc .AppendChild(xmlDoc .CreateXmlDeclaration('1.0 ',' utf-8 ',null));//创建根节点并追加到doc var el=xmlDoc中CreateElement(“客户");xmlDoc .AppendChild(El);//客户联想XML元素元素Customer=XML doc .CreateElement(“客户");XmlAttribute attrID=xmlDoc .创建属性(“id”);属性值=' 01元素客户属性。append(attrID);XmlAttribute cityID=xmlDoc .创建属性(" city ");城市ID .值='北京;元素客户属性。追加(城市id);XmlAttribute attrCountry=xmlDoc .创建属性(“国家”);attrCountry .价值='中国;元素客户属性。附加(attr国家);XmlAttribute nameCountry=xmlDoc .创建属性(“名称”);命名国家. value='联想;元素客户属性。追加(国家名称);埃尔AppendChild(元素客户);//联系李李XML element element Contact=XML doc .CreateElement(' Contact ');元素接触. InnerText=' LiliXmlAttribute attrGender=xmlDoc .创建属性("性别");attrGender .值='女性;元素接触属性。追加(属性性别);XmlAttribute titleGender=xmlDoc .创建属性(“标题”);标题性别. Value='支持元素接触。属性。追加(标题性别);元素客户AppendChild(元素接触);xmlDoc .保存(‘测试。XML’);总结:XML文档类是。Net API中提供的支持W3C XML DOM标准的类。可以用它来创建和查询可扩展标记语言文档。由于XmlDocument要将可扩展标记语言文档的内容全部装载进内存中,所以对于读取内容过大的可扩展标记语言文档,不适合使用XmlDocument类,而可以使用XmlReader来完成读取。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: