在.NET Framework中輕鬆處理XML資料(4-2)

來源:互聯網
上載者:User
Figure 7 States for XML Writer

State
Description

Attribute
The writer enters this state when an attribute is being written

Closed
The Close method has been called and the writer is no longer available for writing operations

Content
The writer enters this state when the content of a node is being written

Element
The writer enters this state when an element start tag is being written

Prolog
The writer is writing the prolog of a well-formed XML 1.0 document

Start
The writer is in an initial state, awaiting for a write call to be issued


??Writer 把輸出文本存在內部的一個緩衝區內。一般情況下,緩衝區會被重新整理或者被清除,當Writer被封閉前XML文本應當要寫出。在任何時你都可以通過調用Flush方法清空緩衝區,把當前的內容寫到流中(通過BaseStream屬性***露流),然後開釋部分佔用的記憶體,Writer仍保持為開啟狀態(open state),可以持續把持。留心,固然寫了部分的文檔內容,但是在Writer沒有封閉前其它的程式是不能處理該文檔的。

??可以用兩種方法來寫屬性節點。第一種方法是用WriteStartAtribute方法往創立一個新的屬性節點,更新Writer的狀態。接著用WriteString方法設定屬性值。寫完後,用WriteEndElement方法結束該節點。另外,你也可以用WriteAttributeString方法往創立新的屬性節點,當writerr的狀態為Element時,WriterAttributeString開端工作,它單獨創立一個屬性。同樣的,WriteStartElement方法寫節點的開端標籤(<),然後你可以隨便的設定節點的屬性和常值內容。元素節點的閉標籤都帶”/ >”。假如想寫閉標籤可以用WriteFullEndElement方法來寫。

??應當避免傳送給寫方法的文本中包含敏感的標記字元,例如小於符號(<)。用WriteRaw方法寫進流的字串不會被解析,我們可以用它來對xml文檔寫進特別的字串。下面的兩行代碼,第一行輸出的是”<”,第二行輸出”<”:

writer.WriteString('<');

writer.WriteRaw('<');



??讀寫流

??有趣的是,reader(瀏覽器)和writer類供給了基於Base64 和BinHex編碼的讀寫資料流的方法。WriteBase64 和 WriteBinHex方法的功效與其它的寫方法的功效存在著細微的差別。它們都是基於流的,這兩個方法的功效像一個byte數組而不是一個string。下面的代碼首先把一個string轉換成一個byte數組,然後把它們寫成一個Base 64 編碼流。Encoding類的GetBytes靜態方法完成轉換的任務:

writer.WriteBase64(

Encoding.Unicode.GetBytes(buf),

0, buf.Length*2);

以上就是在.NET Framework中輕鬆處理XML資料(4-2) 的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.