1.標籤
- 分類:雙標籤:容器標籤 單標籤:空標籤
- 寫法注意事項:(1)嚴格區分大小寫(2)標籤名的規則和Java標識符類似(不能數字開頭沒有$)(3)屬性(key=”value”),必須用引號來括起來(4)xml文件中只有一個根節點
- xml文件中的節點類型:標籤節點,屬性節點,文本節點
- 需求 文本內容爲:特殊字符< & lt;>& gt;” "
1.2
- Dom解析:將整個xml加載到內存中,生成Dom樹,從根節點開始一次查找自己需要的內容
步驟:
(1.)生成解析器SAXReader reader= new SAXReader();
(2)加載xml內容,生成Document兌現
(3)獲取根節點:Element e=document.getRootElement();
獲取標籤的常用方法:
ele.element(標籤名)ele標籤下的第一個指定的子標籤
ele.elements(標籤名)ele標籤下的所有指定的名字的子標籤集合 List
ele.element()ele標籤的所有子標籤集合List
獲取標籤屬性的方法
ele.attribute( 屬性名 ) ele標籤內的名字爲屬性名的屬性對象Attribute
att.getName() 屬性名 att.getValue() 屬性值
ele.attributes() ele標籤內的所有屬性集合 List
ele.attributeValue( 屬性名 ) S ele標籤內的名字爲屬性名的對應值 string
獲取文本的常用方法
ele.getText() 該標籤之間的文本內容 String
ele.elementText( 子標籤 ) 該標籤下的子標籤中的文本內容
1.2SAX解析
- 原理:一點一點類似掃描的形式,對xml的數據一點一點的進行解析對內存要求不高
步驟:
(1)創建解析工廠SAXParserFactory fac= SAXParserFactory.newInstance();
(2)創建解析對象SAXParser parser = fac.newSAXParser();
(3)解析器對象解析xml解析方法需要自己定義
parser.parse(new File(“src/day22/demo1/worker.xml”),
new MyDefaultHanlder());
其中MyDefaultHanlder要繼承DefaultHanlder(4)重寫其中的部分方法
A. startDocument() 文檔開始
B. startElement (String uri, String localName, String qName, Attributes attributes) 標籤開始,參數qName 標籤名 attributes 屬性容器
C. characters(char[] ch, int start, int length)
文本節點開始
參數ch 整個xml數據
start本次起始位置 length本次長度
D. endElement(String uri, String localName, String qName) 標籤結束
E. endDocument() 文檔結束