第一,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中讀取...