如何在JAVA中利用DOM解析XML文件,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比華容網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式華容網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋華容地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
代碼如下
import java.io.IOException; import javax.xml.parsers.*; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Domtest { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { //創(chuàng)建一個DocumentBuilderFactory對象 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); //創(chuàng)建一個Doucumentbuild對象 DocumentBuilder db=dbf.newDocumentBuilder(); //解析對應(yīng)的xml文件 Document doc=db.parse("tes.xml"); //根據(jù)標(biāo)簽名獲取Node節(jié)點list NodeList nodelist=doc.getElementsByTagName("book"); System.out.println("共有"+nodelist.getLength()+"本書"); //遍歷每一個book節(jié)點 for(int i=0;i……算一個節(jié)點,所以共有9個節(jié)點,而這些節(jié)點中,只有對象節(jié)點是我們需要的 Node x=childnode.item(j); if(x.getNodeType()==Node.ELEMENT_NODE){//當(dāng)節(jié)點類型為Element時,獲取該節(jié)點 //獲取element類型的節(jié)點名 System.out.println("節(jié)點"+j+"的名字:"+x.getNodeName()+" 值:/"+x.getLastChild().getNodeValue()+"/種類為"+x.getLastChild().getNodeType());// xyz ,xyz屬于 的子節(jié)點,使用getfirstChild或getLastNode效果相同 System.out.println("節(jié)點"+j+"的名字:"+x.getNodeName()+" 值:/"+x.getTextContent()+"/種類為"+x.getNodeType());//getTextContent方法可以獲取節(jié)點中所有的text內(nèi)容 將 xyz 改為123xyz ,會獲取到xyz123 } } } } } //為了將獲取到的xml文件中內(nèi)容保存下來,可以將內(nèi)容保存到對象數(shù)組中一次來存儲數(shù)據(jù)
冰與火之歌 喬治馬丁 2014 80 安徒生童話 2004 79 English
注意點
1 空白換行符也算節(jié)點,所以遍歷節(jié)點時需要注意這些無用的節(jié)點會混在list中
2 text類節(jié)點返回Name值都是#text,而Element類節(jié)點返回value值都是null,需要注意
關(guān)于如何在JAVA中利用DOM解析XML文件問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。