• 精----Java读取xml文件的四种方法


    xml文件:

      Xml代码

      <?xml version="1.0" encoding="GB2312"?>  
      <RESULT> 
      <VALUE> 
      <NO>A1234</NO> 
      <ADDR>河南省郑州市</ADDR> 
      </VALUE> 
      <VALUE> 
      <NO>B1234</NO> 
      <ADDR>河南省郑州市二七区</ADDR> 
      </VALUE> 
      </RESULT>

      第一种 DOM 实现方法:

      Java代码

     1     import java.io.File; 
     2   import javax.xml.parsers.DocumentBuilder; 
     3   import javax.xml.parsers.DocumentBuilderFactory; 
     4   import org.w3c.dom.Document; 
     5   import org.w3c.dom.NodeList; 
     6   public class MyXMLReader2DOM { 
     7   public static void main(String arge[]) { 
     8   long lasting = System.currentTimeMillis(); 
     9   try { 
    10   File f = new File("data_10k.xml"); 
    11   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    12   DocumentBuilder builder = factory.newDocumentBuilder(); 
    13   Document doc = builder.parse(f); 
    14   NodeList nl = doc.getElementsByTagName("VALUE"); 
    15   for (int i = 0; i < nl.getLength(); i++) { 
    16   System.out.print("车牌号码:"+ doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue()); 
    17   System.out.println("车主地址:"+ doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue()); 
    18   System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
    19   + "毫秒"); 
    20   } 
    21   } 
    22   } catch (Exception e) { 
    23   e.printStackTrace(); 
    24   } 
    25   } 
    26   }

      第二种,DOM4J实现方法:

      Java代码


        
     1 import java.io.*; 
     2   import java.util.*; 
     3   import org.dom4j.*; 
     4   import org.dom4j.io.*; 
     5   public class MyXMLReader2DOM4J { 
     6   public static void main(String arge[]) { 
     7   long lasting = System.currentTimeMillis(); 
     8   try { 
     9   File f = new File("data_10k.xml"); 
    10   SAXReader reader = new SAXReader(); 
    11   Document doc = reader.read(f); 
    12   Element root = doc.getRootElement(); 
    13   Element foo; 
    14   for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) { 
    15   foo = (Element) i.next(); 
    16   System.out.print("车牌号码:" + foo.elementText("NO")); 
    17   System.out.println("车主地址:" + foo.elementText("ADDR")); 
    18   } 
    19   System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
    20   + "毫秒"); 
    21   } 
    22   } catch (Exception e) { 
    23   e.printStackTrace(); 
    24   } 
    25   } 
    26   }

      第三种 JDOM实现方法:

      Java代码

     1     import java.io.*; 
     2   import java.util.*; 
     3   import org.jdom.*; 
     4   import org.jdom.input.*; 
     5   public class MyXMLReader2JDOM { 
     6   public static void main(String arge[]) { 
     7   long lasting = System.currentTimeMillis(); 
     8   try { 
     9   SAXBuilder builder = new SAXBuilder(); 
    10   Document doc = builder.build(new File("data_10k.xml")); 
    11   Element foo = doc.getRootElement(); 
    12   List allChildren = foo.getChildren(); 
    13   for (int i = 0; i < allChildren.size(); i++) { 
    14   System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText()); 
    15   System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText()); 
    16   } 
    17   System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
    18   + "毫秒"); 
    19   } 
    20   } catch (Exception e) { 
    21   e.printStackTrace(); 
    22   } 
    23   } 
    24   }

      第四种SAX实现方法:

      Java代码

     

     1  import javax.xml.parsers.SAXParser; 
     2   import javax.xml.parsers.SAXParserFactory; 
     3   import org.xml.sax.Attributes; 
     4   import org.xml.sax.InputSource; 
     5   import org.xml.sax.SAXException; 
     6   import org.xml.sax.helpers.DefaultHandler; 
     7   public class MyXMLReader2SAX extends DefaultHandler { 
     8   java.util.Stack tags = new java.util.Stack(); 
     9   public MyXMLReader2SAX() { 
    10   super(); 
    11   } 
    12   public static void main(String args[]) { 
    13   long lasting = System.currentTimeMillis(); 
    14   try { 
    15   SAXParserFactory sf = SAXParserFactory.newInstance(); 
    16   SAXParser sp = sf.newSAXParser(); 
    17   MyXMLReader2SAX reader = new MyXMLReader2SAX(); 
    18   sp.parse(new InputSource("data_10k.xml"), reader); 
    19   } catch (Exception e) { 
    20   e.printStackTrace(); 
    21   } 
    22   System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
    23   + "毫秒"); 
    24   } 
    25   public void characters(char ch[], int start, int length) 
    26   throws SAXException { 
    27   String tag = (String) tags.peek(); 
    28   if (tag.equals("NO")) { 
    29   System.out.print("车牌号码:" + new String(ch, start, length)); 
    30   } 
    31   if (tag.equals("ADDR")) { 
    32   System.out.println("地址:" + new String(ch, start, length)); 
    33   } 
    34   } 
    35   public void startElement(String uri, String localName, String qName, 
    36   Attributes attrs) { 
    37   tags.push(qName); 
    38   } 
    39   }
     
     
  • 相关阅读:
    《构建之法》
    《构建之法》第一单元
    查询特殊字符
    Excel文件批量导入SQLSERVER数据库中(利用Foreach容器)
    当月的最后一天SELECT DATEADD(dd,1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 20140930 00:00:00.000
    the difference between primary key and unique key
    sql中如何再判断一个字段是否为空,如果不为空然后再Select这个字段,这要如何写呢?
    union和union all的区别
    UIImageView的基本使用
    UINavigationController导航控制器
  • 原文地址:https://www.cnblogs.com/liuchaogege/p/5396768.html
Copyright © 2020-2023  润新知