使用XmlTextReader 讀取XML

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文件

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.Text;
//
namespace Xmlapp2
public class Form1 : System.Windows.Forms.Form{
//private XmlTextReader  xtr=null;public Form1(){//// Windows 窗體設計器支持所必需的//InitializeComponent();xtr=new XmlTextReader(@"temp.xml");//XmlTextReader.WhitespaceHandling 屬性 :獲取或設置一個值,該值指定如何處理空白xtr.WhitespaceHandling=WhitespaceHandling.All;//// TODO: 在 InitializeComponent 調用后添加任何構造函數代碼//}
//private void button2_Click(object sender, System.EventArgs e)//關閉退出{if (xtr!=null){xtr.Close();}Application.Exit();}private void button1_Click(object sender, System.EventArgs e){StringBuilder str=new StringBuilder("Formatted:");if (xtr.Read()==true){label1.Text=xtr.NodeType.ToString();label2.Text=xtr.Name.ToString();label3.Text=xtr.Value.ToString();switch (xtr.NodeType){case XmlNodeType.Element:str.AppendFormat("<{0}>",xtr.Name);break;case XmlNodeType.Text:break;case XmlNodeType.CDATA:str.AppendFormat("<![CDATA[{0}]]>",xtr.Value);break;case XmlNodeType.ProcessingInstruction:str.AppendFormat("<?{0} {1}?>",xtr.Name,xtr.Value);break;case XmlNodeType.Comment:str.AppendFormat("<!--{0}-->",xtr.Value);break;case XmlNodeType.XmlDeclaration:str.AppendFormat("<?xml version='1.0'?>");break;case XmlNodeType.DocumentType:str.AppendFormat("<!DOCTYPE{0} [{1}]>",xtr.Name,xtr.Value);break;case XmlNodeType.EntityReference:str.Append(xtr.Name);break;case XmlNodeType.EndElement:str.AppendFormat("</{0}>",xtr.Name);break;case XmlNodeType.Whitespace://Console.Write("{0}",xtr.Value);break;}label4.Text=str.ToString();}else{label1.Text="Eof";label2.Text="Eof";label3.Text="Eof";}}}


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255426.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255426.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255426.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#中ComboBox動態綁定賦值

http://www.crifan.com/csharp_combobox_data_dynamic_binding/ C#中&#xff0c;已有一個List&#xff0c;想要動態的&#xff0c;綁定到ComboBox中。 【解決過程】 1.參考&#xff1a; c# winform comboBox動態綁定數據 去試試代碼&#xff1a; cmbSubCategory.DataSource g…

【pyqt5學習】——日歷控件calendarWidget設置單元格格式(前景、背景)、日歷控件屬性編輯

目錄 0、導入庫 1、返回日歷選中的日期 2、更改日歷控件周幾&#xff08;比如一個月屬于周一的日期&#xff09;的所有格子屬性 3、更改日歷控件單個格子&#xff08;指定日期&#xff09;屬性 4、日歷格子屬性 5、信號——clicked() 6、成果展示 0、導入庫 from PyQt5.Q…

linux內核數據結構之鏈表

1、前言 最近寫代碼需用到鏈表結構&#xff0c;正好公共庫有關于鏈表的。第一眼看時&#xff0c;覺得有點新鮮&#xff0c;和我之前見到的鏈表結構不一樣&#xff0c;只有前驅和后繼指針&#xff0c;而沒有數據域。后來看代碼注釋發現該代碼來自linux內核&#xff0c;在linux源…

為什么使用 XML

為什么使用 XML&#xff1f; Web 使我們能夠與任何地方的任何人通訊。廣泛接受的標準&#xff08;這對完全使用 Web 的潛力是至關重要的&#xff09;允許 Web 在多種交互操作的技術層上通訊。一個重要層是可視化顯示和用戶界面&#xff0c;例如 HTML、GIF 和 JScript(TM) 之類的…

bzoj1084: [SCOI2005]最大子矩陣

dp。轉移方程在代碼里。。轉載于:https://www.cnblogs.com/invoid/p/5451202.html

ci事務

參考鏈接:http://www.tuicool.com/articles/jqeuU3轉載于:https://www.cnblogs.com/norm/p/6382396.html

【bug修復】you must feed a value for placeholder tensor ‘Placeholder‘ with dtype float解決方案

最近碰到了這個you must feed a value for placeholder tensor Placeholder with dtype float and shape的問題&#xff0c;字面意思很好理解&#xff0c;就是沒有給Placeholder賦值&#xff0c;可是我明明賦值了&#xff0c;百度了許多&#xff0c;也都是讓我檢查是否賦值以及…

動態代理3之代理工廠實現

動態代理的深化&#xff1a;承接動態代理2( 對 上級實例進行 深化)&#xff0c;也就是 spring 的前身 &#xff08;必須掌握&#xff09;實例&#xff1a; 文件說明&#xff1a;1.有一個Waiter接口&#xff0c;該接口有一個 server() 、ShouQian()方法 2.有一個 Waiter接口的實…

一個簡單的XML文檔例子

一個簡單的XML文檔例子: <?xml version"1.0"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Dont forget me this weekend!</body> </note> 文檔的第一…

python set

python的set和其他語言類似, 是一個無序不重復元素集, 基本功能包括關系測試和消除重復元素. 集合對象還支持union(聯合), intersection(交), difference(差)和sysmmetric difference(對稱差集)等數學運算. sets 支持 x in set, len(set),和 for x in set。作為一個無序的集…

【bug修復】解決ValueError: Tensor(“Variable:0“ dtype=float32_ref) must be from the same graph as Tensor(“R

bug:描述 在進行tensorflow進行搭建CNN網絡時&#xff0c;在定義CNN的py文件中調用cnn模型&#xff0c;運行正常&#xff0c;但是在其他py文件中進行時就出現問題 ValueError: Tensor(“Variable:0” dtypefloat32_ref) must be from the same graph as Tensor(“Reshape:0”,…

XML —— DTD介紹

一、DTD介紹 Document Type Definition&#xff1b; DTD是一種XML的約束方式&#xff0c;除了此種約束方式外&#xff0c;還有XSchema&#xff0c;XSchema比DTD的約束能力還要強&#xff0c;因此DTD正在逐漸淘汰&#xff1b; DTD的目的就是約束XML標簽的寫法&#xff1b;比如在…

error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

更新的軟件可以解決 TortoiseGit-preview-2.5.7.0-20180127-b2d00f8-64bit.msi和Git-2.16.2-64-bit.exe。 鏈接地址為&#xff1a; https://github.com/git-for-windows/git/releases/download/v2.16.2.windows.1/Git-2.16.2-64-bit.exe https://download.tortoisegit.org/tgi…

Linux 圖片傳輸功能c/c++(初版)

由于深度學習任務的需要&#xff0c;要在程序里面嵌入一個module。 這個module 的功能是接收來自ios客戶端的圖片。并且傳送給深度學習分類器進行處理。 于是看了看各種各樣的 module 實現方案。 先是用IO函數把圖片以數組的方式存起來。 再和服務器建立連接&#xff0c;socket…

Val編程-val系列編程思想

利用Val語言可以編寫出各種各樣的應用程序。正如windows phone面臨的窘境一樣&#xff0c;受眾太小&#xff0c;市場不大。應用程序不多&#xff0c;所以也談不上成熟。國內的應用程序基本上就是簡單的小程序&#xff0c;談不上什么編程思想。國外許多都是基于kernel的而衍生出…

Celery的實踐指南

Celery的實踐指南celery原理&#xff1a;celery實際上是實現了一個典型的生產者-消費者模型的消息處理/任務調度統&#xff0c;消費者(worker)和生產者(client)都可以有任意個&#xff0c;他們通過消息系統&#xff08;broker&#xff09;來通信。典型的場景為&#xff1a;客戶…

【pyqt5學習】——bug修復,利用qt資源庫qrc文件進行背景圖像設置,不顯示圖像

目錄 bug描述 bug分析 bug解決 bug描述 利用下面文章的方法進行資源設置后&#xff0c;有的顯示了有的沒有顯示 【pyqt5學習】——pyqt5中.qrc資源文件的創建與編寫_有情懷的機械男的博客-CSDN博客_python qrc目錄一、說明二、安裝pyqt5以及相關工具&#xff08;pyqt5、pyuic…

Datalore:用于機器學習可視化的新Web方案!

前不久&#xff0c;JetBrains團隊發布了Datalore&#xff0c;這是一款基于云的web應用程序&#xff0c;用于構建機器學習模型并在Python中創建豐富的可視化。最新的測試版本旨在簡化構建機器學習模型的流程&#xff0c;并幫助開發人員進行數據分析。由于Datalore的智能編碼輔助…

Val3語言介紹

Val3語言是一門專門針對特定工業機器人的一門語言。在墻內有關這方面的介紹非常的少。在墻外維基百科上有一篇詳細介紹的,有空FQ摘抄在這里。 Val3是使用XML格式。可以使用XML編輯器來進行編寫VAL3的程序&#xff0c;可直接在模擬器上或者示教盒上編程&#xff0c;一般推薦使用…

網絡層相關問題

1.說一下網絡層的總體結構。 2.有沒有看過源碼&#xff1f; A.繼承Request   B.打日志   C.修改參數 3.說一下Volley整體結構。 4.有了解過OkHttp嗎&#xff1f; 5.說一下OkHttp和Volley的區別&#xff1f;轉載于:https://www.cnblogs.com/jarvisyin/p/6389553.html