zoukankan      html  css  js  c++  java
  • 使用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()获得集合中的具体元素

    当然,也可以通过getChildNodes()直接获得好标签下的所有子节点

    最后根据getTextContent()获得具体元素的文本内容

    备注:在最后加上判断是否为Element对象的操作,是因为xml文件中的缩进空格这些会被视为一个空节点输出,所以要加上一个判断

     

  • 相关阅读:
    IE无法打开internet网站已终止操作的解决的方法
    iOS IAP教程
    splice()函数的使用方法
    socket通信简单介绍
    puppet安装和使用
    解惑:NFC手机怎样轻松读取银行卡信息?
    深入浅出谈开窗函数(一)
    TCP/IP协议,HTTP协议
    动态规划0—1背包问题
    栈的链式存储结构及其基本运算的实现
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/9054063.html
Copyright © 2011-2022 走看看