小編給大家分享一下android中dom怎樣解析xml,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站長(zhǎng)期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為郊區(qū)企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,郊區(qū)網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
首先自己創(chuàng)建一個(gè)xml文件:DomTest.xml
<?xml version="1.0" encoding="utf-8"?> <classes> <group name="一年級(jí)" num="10"> <person name="小明" age="7"> <chinese> 語(yǔ)文80 </chinese> <english> 英語(yǔ)89 </english> </person> <person name="小強(qiáng)" age="8"> <chinese> 語(yǔ)文90 </chinese> <english> 英語(yǔ)99 </english> </person> </group> <group name="二年級(jí)" num="20"> <person name="小文" age="8"> <chinese> 語(yǔ)文85 </chinese> <english> 英語(yǔ)95 </english> </person> <person name="小中" age="9"> <chinese> 語(yǔ)文80 </chinese> <english> 英語(yǔ)90 </english> </person> </group> </classes>
解析出來(lái)的結(jié)果顯示如下圖:

下面來(lái)分析源代碼:
/**
* 用dom方式 解析xml 文件
* @param fileName
*/
private String domXmlParse(String fileName) {
String str="";
// xml文檔創(chuàng)建工廠
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
// xml文檔創(chuàng)建實(shí)例
DocumentBuilder docBuilder;
// xml文檔
Document doc = null;
InputStream inStream = null;
try {
docBuilder = docFactory.newDocumentBuilder();
// 從assets文件夾下獲取文件 轉(zhuǎn)換成輸入流
inStream = this.getResources().getAssets().open(fileName);
doc = docBuilder.parse(inStream);
// 獲取xml跟元素
Element rootEle = doc.getDocumentElement();
// 二級(jí)父元素的list列表
NodeList groupNode = rootEle.getElementsByTagName("group");
// NodeList childNode = rootEle.getElementsByTagName("person");
// 遍歷Classe下所有的group
for (int i = 0; i < groupNode.getLength(); i++) {
Element groupEle = (Element) groupNode.item(i);
String groupName = groupEle.getAttribute("name");
String num = groupEle.getAttribute("num");
str =str+"name ="+groupName+" num = "+num+"\n";
Log.e("xml", "name = " + groupName + " num = " + num);
// NodeList personNode = groupNode.item(i).getChildNodes();
NodeList personNode = groupEle.getElementsByTagName("person");
// 遍歷group下的所有person
for (int j = 0; j < personNode.getLength(); j++) {
Element personEle = (Element) personNode.item(j);
String name = personEle.getAttribute("name");
String age = personEle.getAttribute("age");
str =str+"personName ="+name+" personAge = "+age+"\n";
Log.e("xml", "name = " + name + " age = " + age);
Element chineseEle = (Element) personEle
.getElementsByTagName("chinese").item(0);
Element englistEle = (Element) personEle
.getElementsByTagName("english").item(0);
String chinese = chineseEle.getFirstChild().getNodeValue();
String english = englistEle.getFirstChild().getNodeValue();
str =str+"chinese = "+chinese+" english = "+english+"\n";
Log.e("xml", "chinese = " + chinese + " english = "
+ english);
}
}
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return str;
}為 XML 文檔的已解析版本定義了一組接口。解析器讀入整個(gè)文檔,然后構(gòu)建一個(gè)駐留內(nèi)存的樹結(jié)構(gòu),然后代碼就可以使用 DOM 接口來(lái)操作這個(gè)樹結(jié)構(gòu)。優(yōu)點(diǎn):整個(gè)文檔樹在內(nèi)存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點(diǎn):將整個(gè)文檔調(diào)入內(nèi)存(包括無(wú)用的節(jié)點(diǎn)),浪費(fèi)時(shí)間和空間;使用場(chǎng)合:一旦解析了文檔還需多次訪問(wèn)這些數(shù)據(jù);硬件資源充足(內(nèi)存、CPU)。
以上是“android中dom怎樣解析xml”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前標(biāo)題:android中dom怎樣解析xml
分享鏈接:http://chinadenli.net/article8/jggpop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、域名注冊(cè)、做網(wǎng)站、ChatGPT、品牌網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)