sax 解析: 採用事件驅動, 邊讀邊解析. 從上到下, 一行一行的解析, 解析到某乙個物件, 把物件返回.
xml 解析器
sax 解析使用到的類:
jaxp 解析器的 dom 方式解析 xml 檔案
documentbuilder 解析器類
documentbuilde***ctory 解析器工廠
使用 jaxp 解析器實現對 xml 文件的增刪改查
// 示例:
// xml 檔案
<?xml version="1.0" encoding="gbk"?>
zhangsan
20 lisi
32// 查詢: 查詢 xml 檔案中所有的 name 元素的值
/** 思路:
* 1. 建立解析器工廠
* 2. 根據解析器工廠建立解析器
* 3. 解析 xml 返回 document, 需要導包, org.w3c.dom.document
* 4. 使用 document 物件中的 getelementsbytagname() 方法, 獲取 nodelist 集合
* 5. 遍歷集合, 獲取每乙個 name 對應的值
*/public class testjaxp
}// 公升級版, 把獲取 document 物件封裝成方法,
// 只要對 xml 文件進行增刪改操作, 都需要回寫 xml , 因此回寫 xml 也封裝成乙個方法
public class jaxputils catch (exception e)
// 如果出現異常, 返回 null
return null;
}// 回寫 xml 操作
public static void xmltransform(document document, string path) catch(exception e)
}}// 刪除: 刪除 p1 下面的 male
public void rem***()
// 使用 jaxp 遍歷節點, 也就是把 xml 中的所有元素名稱列印出來
/** 思路: 使用遞迴實現遍歷
* 1. 得到根節點
* 2. 得到根節點的子節點
* 3. 得到根節點的子節點的子節點
*/public static void listelement(string path) throws exception
// 因為 node 是 document 的父介面
// list(document document) 公升級為 list(node node)
public static void list2(node node)
// 得到第一層子節點
nodelist list = node.getchildnodes();
// 遍歷 list
for(int i=0; ijaxp 解析器的 sax 方式解析 xml 檔案
sax 方式解析 xml 文件, 只能實現對文件的查詢操作,不能實現增刪改操作.
saxparser 解析器
saxparse***ctory 解析器工廠
使用 jaxp 的 sax 方式解析 xml 文件
// defaulthandler 說明
// 1. defaulthandler 中有三個方法: startelement, characters, endelement
// 2. 當解析到開始標籤時, 自動執行 startelement 方法,
// 3. 當解析到文字內容時, 自動執行 characters 方法
// 4. 當解析到標籤結束時, 自動執行 endelement 方法
// 示例:
// xml 檔案
<?xml version="1.0" encoding="gbk"?>
zhangsan
20 lisi
32// 需求一: 列印 xml 文件中所有元素
/** 思路:
* 1. 建立解析器工廠
* 2. 建立解析器
* 3. 執行 parse 方法
** 4. 自己建立乙個類, 繼承 defaulthandler
* 5. 重寫類裡面的三個方法
* /public class testjaxp
}// 列印整個文件的事件處理器
class mydefault2 extends defaulthandler
// 重寫 characters 方法
public void characters(char ch, int start, int length) throws saxexception
// 重寫 endelement 方法
public void endelement(string uri, string localname, string qname) throws saxexception
}// 獲取所有的 name 元素的值, 事件處理器
class mydefault3 extends defaulthandler
}// 重寫 characters 方法
public void characters(char ch, int start, int length) throws saxexception
}// 重寫 endelement 方法
public void endelement(string uri, string localname, string qname) throws saxexception}}
// 獲取第乙個 name 元素中的值
class mydefault3 extends defaulthandler
}// 重寫 characters 方法
public void characters(char ch, int start, int length) throws saxexception
}// 重寫 endelement 方法
public void endelement(string uri, string localname, string qname) throws saxexception}}
jaxp解析XML之SAX解析
sax解析原理 是事件驅動的xml解析處理方法,是基於事件驅動的。contenthandler文件處理器類中 常用事件方法 startdocument 文件開始事件時呼叫 enddocument 文件結束事件時呼叫 startelement 在每次sax解析器遇到元素的起始標記時被呼叫 charac...
pull解析器解析xml
利用pull解析xml檔案需要下面幾個步驟 1 獲取xmlpullparser物件。這裡有兩個方法 通過xmlpullparse ctory獲取xmlpullparser物件,或者直接使用xml.newpullparser 方法獲取。栗子如 一所示。2 通過xmlpullparser物件設定輸入流。...
XML解析 Jsoup解析器
jsoup快捷查詢方式 jsoup概念 跳轉到目錄 jsoup基本使用 提取碼 0uvi 獲取document物件 獲取對應標籤的element物件 獲取資料 public static void getfirstname throws exception jsoup中的物件 跳轉到目錄 獲取對應的...