使用DOM解析xml文件
Posted xtu熊大
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用DOM解析xml文件相关的知识,希望对你有一定的参考价值。
使用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文件中的缩进空格这些会被视为一个空节点输出,所以要加上一个判断
以上是关于使用DOM解析xml文件的主要内容,如果未能解决你的问题,请参考以下文章