-
nodeValue的返回值類(lèi)型為null;
查看全部 -
getFirstChild().getNodeValue方法和getTextContent()方法的區(qū)別
查看全部 -
使用getFirstChild方法,獲取子節(jié)點(diǎn)再獲取子節(jié)點(diǎn)的值
查看全部 -
不知道屬性值的情況下,遍歷所有屬性值
查看全部 -
Java程序中的四種解析xml文件的方式
查看全部 -
通過(guò)dom方法解析xml文件
查看全部 -
SAX解析原理
通過(guò)自己創(chuàng)建的Handler處理類(lèi),去逐個(gè)分析遇到的每一個(gè)節(jié)點(diǎn),從外層到里層
startElement? ?endElement
1.通過(guò)SAXParserFactory的靜態(tài)newInstance()方法獲取SAXParserFactory實(shí)例factory
2.通過(guò)SAXParserFactory實(shí)例的newSAXParser()方法返回SAXParser實(shí)例parser
3.創(chuàng)建一個(gè)類(lèi)繼承DefaultHandler,重寫(xiě)其中的一些方法進(jìn)行業(yè)務(wù)處理并創(chuàng)建這個(gè)類(lèi)的實(shí)例handler查看全部 -
在java程序中讀取xml文件的過(guò)程也稱(chēng)為:解析xml文件
解析的目的:獲取節(jié)點(diǎn)名、節(jié)點(diǎn)值、屬性名、屬性值
四種解析方式:Java官方提供(DOM????SAX?)? ? 其他組織的(DOM4J????JDOM)如何在java中保留xml數(shù)據(jù)的結(jié)構(gòu)
DOM方式解析xml步驟
準(zhǔn)備工作:
????創(chuàng)建一個(gè)DocumentBuilderFactory對(duì)象
????創(chuàng)建一個(gè)DocumentBuilder對(duì)象
????通過(guò)DocumentBuilder對(duì)象的parse(String fileName)方法加載books.xml文件到當(dāng)前項(xiàng)目下(注意:異常不要進(jìn)行過(guò)多的嵌套,要合并在一起)
節(jié)點(diǎn)類(lèi)型:3種
空格+換行也算子節(jié)點(diǎn)查看全部 -
java解析和生成xml
xml:可擴(kuò)展標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。
表現(xiàn):以 .xml 為文件擴(kuò)展名的文件
存儲(chǔ):樹(shù)形結(jié)構(gòu)
為什么用使用XML
????思考1:不同應(yīng)用程序之間的通信
????思考2:不同平臺(tái)間的通信
????思考3:不同平臺(tái)間的數(shù)據(jù)共享e.g. MSN中存儲(chǔ)用戶的聊天記錄
查看全部 -
常用的結(jié)點(diǎn)類(lèi)型查看全部 -
常用節(jié)點(diǎn)類(lèi)型
查看全部 -
//SAX解析XML文件
SAXParserFactory spf=SAXParserFactory.newInstance();
SAXParser sp=spf.newSAXParser();?
sp.parse("url",Handler對(duì)象);?
//Handler對(duì)象需要自己創(chuàng)建且繼承defaultHandler類(lèi);
查看全部 -
//獲取book下的子節(jié)點(diǎn)
NodeList childnode=book.getChildNodes();
for(int i=0;i<childnode.getLength();i++){
childnode.item(i).getNodeType();//獲取節(jié)點(diǎn)類(lèi)型,以便于篩選節(jié)點(diǎn)
childnode.item(i).getNodeName();//獲取節(jié)點(diǎn)名稱(chēng)
//獲取節(jié)點(diǎn)的節(jié)點(diǎn)值
childnode.item(i).getFirstChild.getNodeValue();//節(jié)點(diǎn)內(nèi)的值是本節(jié)點(diǎn)的子節(jié)點(diǎn),要獲取子節(jié)點(diǎn)后再獲取節(jié)點(diǎn)值,否則返回的值為null。當(dāng)本屆點(diǎn)有不只一個(gè)子節(jié)點(diǎn)時(shí),返回的值也為null。
childnode.item(i).getTextContent();//可直接獲取book子節(jié)點(diǎn)的節(jié)點(diǎn)值。當(dāng)此節(jié)點(diǎn)有不止一個(gè)子節(jié)點(diǎn)時(shí),獲取的是所有子節(jié)點(diǎn)的節(jié)點(diǎn)值。
}
查看全部 -
NodeList nodelist=document.getElementByTagName("book");//獲取所有book節(jié)點(diǎn)。
//在不知道book有幾個(gè)屬性時(shí)
for(int i=0;i<nodelist.getlength;i++){
Node book=nodelist.ltem(i);//獲取nodelist集合中一個(gè)節(jié)點(diǎn)。
NameNodeMap attrs=book.getAttributes();//獲取此節(jié)點(diǎn)所有屬性的集合。
for(int j=0;j<attrs.getLength();j++){
Node attr=attrs.item(j);//獲取book節(jié)點(diǎn)的某個(gè)屬性。
attr.getNodeName();//獲取此屬性的屬性名。
attr.getNodeValue();//獲取此屬性的屬性值。
}
}
//在明確知道book只有一個(gè)屬性值時(shí)
Element bookid=(Element)nodelist.item(i);//注意強(qiáng)轉(zhuǎn)
bookid.getNodeName();//獲取此屬性的屬性名。
bookid.getNodeValue();//獲取此屬性的屬性值。
查看全部 -
解析XML文件
創(chuàng)建DocumentBuilderFactory的對(duì)象。
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//返回DocumentBuilderFactory對(duì)象。
創(chuàng)建一個(gè)DocumentBuilder對(duì)象。
DocumentBuilder db=dbf.newDocumentBuilder();
加載xml文件到當(dāng)前目錄下。
Document documen=db.parde("需要解析的xml文件的路徑");
//注意:Document對(duì)象選用org.w3c包下的對(duì)象。
查看全部
舉報(bào)