加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用XmlTextReader 读取XML

发布时间:2020-12-16 08:28:53 所属栏目:百科 来源:网络整理
导读:使用XmlTextReader 读取XML 2014-12-31 13:53 1403人阅读 评论(0) 收藏 举报 本文章已收录于: XmlTextReader 限于只向前的读取 XmlTextReader 的技术类似于读取其他任何文件 首先打开文件,然后从文件中读取信息,最后关闭文件. 每次从文件中读取信息时,他
使用XmlTextReader 读取XML
1403人阅读 评论(0) 收藏 举报
本文章已收录于:
XmlTextReader 限于只向前的读取
XmlTextReader 的技术类似于读取其他任何文件 首先打开文件,然后从文件中读取信息,最后关闭文件.
每次从文件中读取信息时,他在文件中的位置都会前移.到达文件结尾的时候就什么都不读了。
1 创建XmlTextReader对象
XmlTextReader 类:表示提供对 XML 数据进行快速、非缓存、只进访问的读取器。
public class XmlTextReader : XmlReader,IXmlLineInfo
例如:创建一个名为myReader的对象,并将他指向一个filename文件.这个文件名可以包含完整的路径
XmlTextReader myReader=new XmlTextReader("filename");
XmlTextReader 构造函数:1 protected XmlTextReader(); 2 public XmlTextReader(Stream);
3 public XmlTextReader(string);等等
读取数据:
注意:XmlTextReader 对象不验证数据。它假设你已经使用了标准的XML。(缺乏数据验证有助于获取最快的速度)
读取数据的XMLTextReader方法
方法 详细说明
Read 读取XML文件的下一个结点
ReadAttributeValue 读取属性值
ReadBase64 读取Base64值
ReadBinHex 读取BinHex值
ReadChars 读取文本字符
ReadElementString 读取只有文本的元素
ReadEndElement 读取结束元素
ReadInnerXml 将XML结点全部内容读到一个字符串里面
ReadOuterXml 将整个XML结点和它的内容读到一个字符串里面
ReadStartElement 读取开始元素
ReadString 将一个元素或者文本结点值读到一个字符串里面
注意XmlNodeType对象读取的值与一个XmlNodeType的值相比较完成评估(详见 msdn)
关闭XmlTextReader对象 myReader.Close();
使用XmlTextReader的实例应用程序
实例说明:

使用XmlTextReader读取XML文件

[cpp] view plain copy print ?
  1. usingSystem;
  2. usingSystem.Drawing;
  3. usingSystem.Collections;
  4. usingSystem.ComponentModel;
  5. usingSystem.Windows.Forms;
  6. usingSystem.Data;
  7. usingSystem.Xml;
  8. usingSystem.Text;
  9. //
  10. namespaceXmlapp2
  11. publicclassForm1:System.Windows.Forms.Form
  12. {
  13. //
  14. privateXmlTextReaderxtr=null;
  15. publicForm1()
  16. {
  17. //
  18. //Windows窗体设计器支持所必需的
  19. //
  20. InitializeComponent();
  21. xtr=newXmlTextReader(@"temp.xml");
  22. //XmlTextReader.WhitespaceHandling属性:获取或设置一个值,该值指定如何处理空白
  23. xtr.WhitespaceHandling=WhitespaceHandling.All;
  24. //
  25. //TODO:在InitializeComponent调用后添加任何构造函数代码
  26. //
  27. }
  28. //
  29. privatevoidbutton2_Click(objectsender,System.EventArgse)//关闭退出
  30. {
  31. if(xtr!=null)
  32. {
  33. xtr.Close();
  34. }
  35. Application.Exit();
  36. }
  37. privatevoidbutton1_Click(objectsender,System.EventArgse)
  38. {
  39. StringBuilderstr=newStringBuilder("Formatted:");
  40. if(xtr.Read()==true)
  41. {
  42. label1.Text=xtr.NodeType.ToString();
  43. label2.Text=xtr.Name.ToString();
  44. label3.Text=xtr.Value.ToString();
  45. switch(xtr.NodeType)
  46. {
  47. caseXmlNodeType.Element:
  48. str.AppendFormat("<{0}>",xtr.Name);
  49. break;
  50. caseXmlNodeType.Text:
  51. break;
  52. caseXmlNodeType.CDATA:
  53. str.AppendFormat("<![CDATA[{0}]]>",xtr.Value);
  54. break;
  55. caseXmlNodeType.ProcessingInstruction:
  56. str.AppendFormat("<?{0}{1}?>",xtr.Name,xtr.Value);
  57. break;
  58. caseXmlNodeType.Comment:
  59. str.AppendFormat("<!--{0}-->",xtr.Value);
  60. break;
  61. caseXmlNodeType.XmlDeclaration:
  62. str.AppendFormat("<?xmlversion='1.0'?>");
  63. break;
  64. caseXmlNodeType.DocumentType:
  65. str.AppendFormat("<!DOCTYPE{0}[{1}]>",xtr.Value);
  66. break;
  67. caseXmlNodeType.EntityReference:
  68. str.Append(xtr.Name);
  69. break;
  70. caseXmlNodeType.EndElement:
  71. str.AppendFormat("</{0}>",xtr.Name);
  72. break;
  73. caseXmlNodeType.Whitespace:
  74. //Console.Write("{0}",xtr.Value);
  75. break;
  76. }
  77. label4.Text=str.ToString();
  78. }
  79. else
  80. {
  81. label1.Text="Eof";
  82. label2.Text="Eof";
  83. label3.Text="Eof";
  84. }
  85. }
  86. }


0
0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读