xml解析和序列化總結

2021-07-24 19:20:55 字數 1734 閱讀 7387

第一,xml是什麼?

和html類似,區別

xml是儲存資料的,自定義的

html是顯示資料的,預定義的

常用1.0版本,不用1.1不想下相容

應用系統之間傳輸資料的格式

表示生活中的關係

配置檔案

第二,語法

宣告<?xml version="1.0" encoding="utf-8"?>

駝峰命名法

必須放到第一行,還要第一列

元素的定義

有開始就有結束

沒有內容就行內結束

正確巢狀

只有乙個根標籤如

命名規範

區分大小寫

不能以_和數字開頭

不能使用定義的名稱如 class xml xml xml

不能有空格

不能有冒號

屬性的定義

有多個屬性,但是不能相同名字

(雙引號和單引號都行)

屬性名和元素名一樣,駝峰命名規範

注釋cdata

b)]]>

例子<?xml version="1.0" encoding="utf-8"?>

張三籃球

top solo

李四足球

adcb)]]>

第三,解析

分類dom 

優點:容易記憶體溢位,增刪改,快

缺點:查慢.

sax優點:不會記憶體溢位,查,快

缺點:不能增刪改

pull

dom解析

在記憶體中分配乙個樹型結構

document

element

屬性文字

node節點物件,是上面物件的 父 物件

sax解析

邊讀邊解析(標籤之間沒有關係)

<?xml version="1.0"?>

lucy

20nv

先將<?xml version="1.0"?>放入記憶體,呼叫strat_document()方法解析,解析完成之後,在丟出來,釋放記憶體.

pull解析(原理是sax解析,是查詢操作)

要匯入2個jar包

xml讀出來,解析時,資料放在集合中

建立解析工廠

建立解析器

把檔案放入解析器中

public class testpull01 else if ("mygroup".equals(tagname)) else if ("member".equals(tagname)) else if ("name".equals(tagname)) else if ("hobby".equals(tagname)) else if ("location".equals(tagname))

break;

case xmlpullparser.end_tag:

if ("mygroup".equals(tagname))

break;

}parser.next();

}for (group gs : list) }}

將集合資料,寫到xml中,序列化

public static void main(string args) throws exception

}結果是 outstu.xml

<?xml version='1.0' encoding='utf-8' ?>

zhangsan

23lisi

24wangwu

25

xml序列化測試和總結

using system.xml using system.xml.serialization public partial class writexmlstr system.web.ui.page xmlclass outxml3 new xmlclass 正常的輸出 strxml xmloper...

Xml序列化和反序列化

1.xmlserializer 類 該類用一種高度鬆散耦合的方式提供序列化服務。你的類不需要繼承特別的基類,而且它們也不需要實現特別的介面。相反,你只需在你的類或者這些類的公共域以及讀 寫屬性裡加上自定義的特性。xmlserializer 通過反射機制讀取這些特性並用它們將你的類和類成員對映到 xm...

XML序列化和反序列化

閱讀目錄 回到頂部 由於.net framework針對xml提供了很多api,這些api根據不同的使用場景實現了不同層次的封裝,比如,我們可以直接使用xmltextreader xmldocument xpath來取數xml中的資料,也可以使用linq to xml或者反序列化的方法從xml中讀取...