使用DOM解析xml文件 要解析的xml文件如下: 解析xml的代碼如下: 基本步驟差不多就是: 首先是先獲得根元素 然後getElementByTagName()獲得相應標簽的node集合 通過集合,如list中的item()獲得集合中的具體元素 最後根據getTextContent()獲得具體元 ...
使用DOM解析xml文件
要解析的xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <Languages cat="it"> <lan id="1"> <name>java</name> <ide>Eclipse</ide> </lan> <lan id="2"> <name>Swift</name> <ide>Xcode</ide> </lan> <lan id="3"> <name>C#</name> <ide>Visual Studio</ide> </lan> </Languages>
解析xml的代碼如下:
public class Dealxml { public static void main(String[] args) { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File("language.xml")); //獲取xml的根元素 Element root=document.getDocumentElement(); System.out.println("cat="+root.getAttribute("cat")); NodeList nlist=root.getElementsByTagName("lan"); for(int i=0;i<nlist.getLength();i++){ System.out.println("-----------------"); Element lan=(Element) nlist.item(i); System.out.println("id="+lan.getAttribute("id")); NodeList clist=lan.getChildNodes(); for(int j=0;j<clist.getLength();j++){ Node c= clist.item(j); if(c instanceof Element){ System.out.println(c.getNodeName()+"="+c.getTextContent()); } } } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
基本步驟差不多就是:
首先是先獲得根元素
然後getElementByTagName()獲得相應標簽的node集合
通過集合,如list中的item()獲得集合中的具體元素
最後根據getTextContent()獲得具體元素的文本內容
備註:在最後加上判斷是否為Element對象的操作,是因為xml文件中的縮進空格這些會被視為一個空節點輸出,所以要加上一個判斷