好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > .net讀寫xml文檔詳解

.net讀寫xml文檔詳解

熱門標簽:昆明語音電銷機器人價格 征途美甲店地圖標注 400電話如何申請取消 騰訊地圖標注手機 浦發電話機器人提醒還款 百度地圖怎樣做地圖標注 太原400電話上門辦理 柳州電銷機器人公司 電銷語音機器人型號參數

一  .Net框架中與XML有關的命名空間

System.Xml
包含了一些和XML文檔的讀寫操作相關的類,它們分別是:XmlReader、XmlTextReader、XmlValidatingReader、XmlNodeReader、XmlWriter、XmlTextWriter 以及 XmlNode(它的子類包括:XmlDocument、XmlDataDocument、XmlDocumentFragment)等類。

System.Xml.Schema
包含了和XML模式相關的類,這些類包括XmlSchema、XmlSchemaAll、XmlSchemaXPath以及XmlSchemaType等類。

System.Xml.Serialization
包含了和XML文檔的序列化和反序列化操作相關的類。
序列化:將XML格式的數據轉化為流格式的數據,并能在網絡中傳輸;
反序列化:完成相反的操作,即將流格式的數據還原成XML格式的數據。

System.Xml.Xpath
包含了XPathDocument、XPathExression、XPathNavigator以及XPathNodeIterator等類,這些類能完成XML文檔的導航功能。
(在XPathDocument類的協助下,XPathNavigator類能完成快速的XML文檔導航功能,該類為程序員提供了許多Move方法以完成導航功能。)

System.Xml.Xsl
完成XSLT的轉換功能。

二  寫XML文檔的方法

用XmlWriter類實現寫操作,該類包含了寫XML文檔所需的方法和屬性,它是XmlTextWriter類和XmlNodeWriter類的基類。

寫操作的有些方法是成對出現的,比如你要寫入一個元素,首先調用WriteStartElement方法—>寫入實際內容—>調用WriteEndElement方法結束。

下面通過其子類 XmlTextWriter 來說明如何寫XML文檔。

XmlTextWriter textWriter = New XmlTextWriter("C:\\myXmFile.xml", null);

在創建完對象后,我們調用WriterStartDocument方法開始寫XML文檔;
在完成寫工作后,就調用WriteEndDocument結束寫過程,并調用Close方法將它關閉。

在寫的過程中,我們可以:
調用WriteComment方法來添加說明;
通過調用WriteString方法來添加一個字符串;
通過調用WriteStartElement和WriteEndElement方法對來添加一個元素;
通過調用WriteStartAttribute和WriteEndAttribute方法對來添加一個屬性;
通過調用WriteNode方法來添加整的一個節點;
其它的寫的方法還包括WriteProcessingInstruction和WriteDocType等等。

下面的示例介紹如何具體運用這些方法來完成XML文檔的寫工作。

復制代碼 代碼如下:

using System;
using System.Xml; 

namespace WriteXML
{
 class Class1
 {
  static void Main( string[] args )
  {
   try
   {
    // 創建XmlTextWriter類的實例對象
    XmlTextWriter textWriter = new XmlTextWriter("C:\\w3sky.xml", null);
    textWriter.Formatting = Formatting.Indented;

    // 開始寫過程,調用WriteStartDocument方法
    textWriter.WriteStartDocument(); 

    // 寫入說明
    textWriter.WriteComment("First Comment XmlTextWriter Sample Example");
    textWriter.WriteComment("w3sky.xml in root dir");  

    //創建一個節點
    textWriter.WriteStartElement("Administrator");
    textWriter.WriteElementString("Name", "formble");
    textWriter.WriteElementString("site", "w3sky.com");
    textWriter.WriteEndElement();

    // 寫文檔結束,調用WriteEndDocument方法
    textWriter.WriteEndDocument();

    // 關閉textWriter
    textWriter.Close();
   }
   catch(System.Exception e)
   {
    Console.WriteLine(e.ToString());
   }
  }

 }
}

三  讀XML文檔的方法

用XmlTextReader類的對象來讀取該XML文檔。在創建新對象的構造函數中指明XML文件的位置即可。

XmlTextReader textReader = new XmlTextReader("C:\\books.xml");

XmlTextReader 類中的屬性 NodeType 可以知道其節點的節點類型。通過與枚舉類型 XmlNodeType 中的元素的比較,可以獲取相應節點的節點類型并對其完成相關的操作。

枚舉類型 XmlNodeType 中包含了諸如XmlDeclaration、Attribute、CDATA、Element、Comment、Document、DocumentType、Entity、ProcessInstruction以及WhiteSpace等XML項的類型。

下面的示例是以讀取"books.xml"文件創建對象,通過該xml對象的Name、BaseURI、Depth、LineNumber等屬性來獲取相關信息,并顯示在控制臺中。(運用VS.net開發工具附帶的"books.xml"文件來作為示例)

復制代碼 代碼如下:

using System;
using System.Xml; 

namespace ReadXml
{
    class Class1
    {
        static void Main( string[] args )
        {
            // 創建一個XmlTextReader類的對象并調用Read方法來讀取XML文件
            XmlTextReader textReader  = new XmlTextReader("C:\\books.xml");
            textReader.Read();
            // 節點非空則執行循環體
            while ( textReader.Read() )
            {
                // 讀取第一個元素
                textReader.MoveToElement();
                Console.WriteLine("XmlTextReader Properties Test");
                Console.WriteLine("==================="); 

                // 讀取該元素的屬性并顯示在控制臺中
                Console.WriteLine("Name:" + textReader.Name);
                Console.WriteLine("Base URI:" + textReader.BaseURI);
                Console.WriteLine("Local Name:" + textReader.LocalName);
                Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
                Console.WriteLine("Depth:" + textReader.Depth.ToString());
                Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
                Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
                Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
            }
        }
    }
}

四  運用XmlDocument類

XmlDocument類代表了XML文檔,它能完成與整個XML文檔相關的各類操作,同時和其相關的XmlDataDocument類也是非常重要的,值得深入研究。 該類包含了Load、LoadXml以及Save等重要的方法。

Load方法: 可以從一個字符串指定的XML文件或是一個流對象、一個TextReader對象、一個XmlReader對象導入XML數據。
LoadXml方法: 則完成從一個特定的XML文件導入XML數據的功能。
Save方法: 則將XML數據保存到一個XML文件中或是一個流對象、一個TextWriter對象、一個XmlWriter對象中。

下面的示例中,用到了XmlDocument類對象的LoadXml方法,它從一個XML文檔段中讀取XML數據并調用其Save方法將數據保存在一個文件中。

復制代碼 代碼如下:

// 創建一個XmlDocument類的對象
XmlDocument doc = new XmlDocument();
doc.LoadXml(("Student type='regular' Section='B'>Name>Tommy Lex/Name>/Student>"));

// 保存到文件中
doc.Save("C:\\student.xml");

// 還可以通過改變Save方法中參數,將XML數據顯示在控制臺中,方法如下:
doc.Save(Console.Out);

下面的示例中,用到了一個XmlTextReader對象,通過它讀取"books.xml"文件中的XML數據。然后創建一個XmlDocument對象并載入XmlTextReader對象,這樣XML數據就被讀到XmlDocument對象中了。最后,通過該對象的Save方法將XML數據顯示在控制臺中。

XmlDocument doc = new XmlDocument();
// 創建一個XmlTextReader對象,讀取XML數據
XmlTextReader reader = new XmlTextReader("c:\\books.xml");
reader.Read();

// 載入XmlTextReader類的對象
doc.Load(reader);
// 將XML數據顯示在控制臺中
doc.Save(Console.Out);

xml文件

復制代碼 代碼如下:

?xml version='1.0'?>
!-- This file represents a fragment of a book store inventory database -->
bookstore>
  book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    title>The Autobiography of Benjamin Franklin/title>
    author>
      first-name>Benjamin/first-name>
      last-name>Franklin/last-name>
    /author>
    price>8.99/price>
  /book>
  book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    title>The Confidence Man/title>
    author>
      first-name>Herman/first-name>
      last-name>Melville/last-name>
    /author>
    price>11.99/price>
  /book>
  book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    title>The Gorgias/title>
    author>
      first-name>Sidas/first-name>
      last-name>Plato/last-name>
    /author>
    price>9.99/price>
  /book>
/bookstore>

另外一個.net操作xml文件示例

復制代碼 代碼如下:

//設置配置文件物理路徑
    public string xmlPath = "/manage/spider/config.xml";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //設置程序物理路徑+文件物理路徑
            string path = Request.PhysicalApplicationPath + xmlPath;
            //獲取XML元素對象
            XElement config = XElement.Load(path);
            if (config != null)
            {
                //獲得節點子元素
                XElement eleAmazonDetailUrl = config.Element("AmazonDetailUrl");
                XElement eleAmazonListUrl = config.Element("AmazonListUrl");
                XElement eleHz = config.Element("Hz");
                XElement eleCount = config.Element("Count");
                //在頁面上呈現取到的數據
                if (eleAmazonDetailUrl != null)
                    TextBox_AmazonDetailUrl.Text = eleAmazonDetailUrl.Value;
                if (eleAmazonListUrl != null)
                    TextBox_AmazonListUrl.Text = eleAmazonListUrl.Value;
                if (eleHz != null)
                    TextBox_Hz.Text = eleHz.Value;
                if (eleCount != null)
                    TextBox_Count.Text = eleCount.Value;
            }
            else
                Response.Write("");

        }
    }
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        //設置XML文件路徑
        string path = Request.PhysicalApplicationPath + xmlPath;
        //設置節點的名稱和內容
        XElement root = new XElement("Settings",
             new XElement("AmazonDetailUrl", TextBox_AmazonDetailUrl.Text.Trim()),
             new XElement("AmazonListUrl", TextBox_AmazonListUrl.Text.Trim()),
             new XElement("Hz", TextBox_Hz.Text.Trim()),
             new XElement("Count", TextBox_Count.Text.Trim())
                 );
        //將元素序列化到指定路徑的XML文件當中
        root.Save(path);
     }

標簽:張家界 新疆 江蘇 蘭州 德陽 天門 陽泉 白山

巨人網絡通訊聲明:本文標題《.net讀寫xml文檔詳解》,本文關鍵詞  .net,讀寫,xml,文檔,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.net讀寫xml文檔詳解》相關的同類信息!
  • 本頁收集關于.net讀寫xml文檔詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女大胸奶头www网站妖精视频| 在线99热| 久久精品爱国产免费久久| 国产操片| 女人被添荫蒂舒服了的更新时间| 99日韩精品| 中文无码字幕在线中文乱码解决方法| 亚洲乱熟女一区二区三区山口珠理 | japanesexxx日本69| 日本一级特级毛片视频| 搞黄视频软件| 乱子伦农村xxxx视频| 男女叉下体| 天天婬欲婬香婬色婬在线观看 | 在哪里可以免费看片www| 宝贝张开腿让我亲你会好爽| 办公室的交易完整版免费观看| 縄女囚拷问gtj| 搞黄视频app| 野花社区在线观看hd| 国产精品久久国产精品99gif| 国产精品久久久久久日日网| 美女隐私免费视频无遮挡网站| 色秘?乱码一区二区三区唱戏| 一区二区三区高清| 久操| 校花被黑人多男按着灌满精视频 | 91人妻人人澡人人爽人人爽 | 日韩高清不卡在线| 他扒开我的裙底把舌头伸进去| 《初尝禁果》2:做爰HD| 一个人看的视频www在线观看免费| 啊用力好大粗黑人小说| 国产精品久久久久精品香港乳瀑瀑| 国产美女久久久| 一级特黄aa大片免费播放| 五月色丁香国产精品白拍| 国产午夜精品理论片A级大结局| 欧美午夜一级AAAAA片老肥婆 | 女人爽到喷水的视频| 91精品久久久久精品|