打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java读取xml文件的四种方法,及其取得配置文件的方法

  xml文件:

  Xml代码



    
   
   
  A1234 
  河南省郑州市 
  
 
   
  B1234 
  河南省郑州市二七区 
  
 
  


  第一种 DOM 实现方法:

  Java代码



    import java.io.File; 
  import javax.xml.parsers.DocumentBuilder; 
  import javax.xml.parsers.DocumentBuilderFactory; 
  import org.w3c.dom.Document; 
  import org.w3c.dom.NodeList; 
  public class MyXMLReader2DOM { 
  public static void main(String arge[]) { 
  long lasting = System.currentTimeMillis(); 
  try { 
  File f = new File("data_10k.xml"); 
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
  DocumentBuilder builder = factory.newDocumentBuilder(); 
  Document doc = builder.parse(f); 
  NodeList nl = doc.getElementsByTagName("VALUE"); 
  for (int i = 0; i < nl.getLength(); i++) { 
  System.out.print("车牌号码:"+ doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue()); 
  System.out.println("车主地址:"+ doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue()); 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }


  第二种,DOM4J实现方法:

  Java代码



    import java.io.*; 
  import java.util.*; 
  import org.dom4j.*; 
  import org.dom4j.io.*; 
  public class MyXMLReader2DOM4J { 
  public static void main(String arge[]) { 
  long lasting = System.currentTimeMillis(); 
  try { 
  File f = new File("data_10k.xml"); 
  SAXReader reader = new SAXReader(); 
  Document doc = reader.read(f); 
  Element root = doc.getRootElement(); 
  Element foo; 
  for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) { 
  foo = (Element) i.next(); 
  System.out.print("车牌号码:" + foo.elementText("NO")); 
  System.out.println("车主地址:" + foo.elementText("ADDR")); 
  } 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }


  第三种 JDOM实现方法:

  Java代码



    import java.io.*; 
  import java.util.*; 
  import org.jdom.*; 
  import org.jdom.input.*; 
  public class MyXMLReader2JDOM { 
  public static void main(String arge[]) { 
  long lasting = System.currentTimeMillis(); 
  try { 
  SAXBuilder builder = new SAXBuilder(); 
  Document doc = builder.build(new File("data_10k.xml")); 
  Element foo = doc.getRootElement(); 
  List allChildren = foo.getChildren(); 
  for (int i = 0; i < allChildren.size(); i++) { 
  System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText()); 
  System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText()); 
  } 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  }


  第四种SAX实现方法:

  Java代码



 import javax.xml.parsers.SAXParser; 
  import javax.xml.parsers.SAXParserFactory; 
  import org.xml.sax.Attributes; 
  import org.xml.sax.InputSource; 
  import org.xml.sax.SAXException; 
  import org.xml.sax.helpers.DefaultHandler; 
  public class MyXMLReader2SAX extends DefaultHandler { 
  java.util.Stack tags = new java.util.Stack(); 
  public MyXMLReader2SAX() { 
  super(); 
  } 
  public static void main(String args[]) { 
  long lasting = System.currentTimeMillis(); 
  try { 
  SAXParserFactory sf = SAXParserFactory.newInstance(); 
  SAXParser sp = sf.newSAXParser(); 
  MyXMLReader2SAX reader = new MyXMLReader2SAX(); 
  sp.parse(new InputSource("data_10k.xml"), reader); 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) 
  + "毫秒"); 
  } 
  public void characters(char ch[], int start, int length) 
  throws SAXException { 
  String tag = (String) tags.peek(); 
  if (tag.equals("NO")) { 
  System.out.print("车牌号码:" + new String(ch, start, length)); 
  } 
  if (tag.equals("ADDR")) { 
  System.out.println("地址:" + new String(ch, start, length)); 
  } 
  } 
  public void startElement(String uri, String localName, String qName, 
  Attributes attrs) { 
  tags.push(qName); 
  } 

  }


实例:java读取配置文件方法

 
        (1).通过类的相对路径 InputStream inputStream = ConstantUtil.class.getClassLoader().getResourceAsStream("/web/www/conf/newstype.xml");

     (2)通过整个项目的相对路径

   String root = request.getSession().getServletContext().getRealPath("/")
                   + ConstantUtil.BASE_PATH;

  String pathtmp=root+ File.separator +File.separator +"www"+"conf"+File.separator+"newstype.xml";

        (3)java相对路径File f = new File("web/www/conf/newstype.xml");
       

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中四种XML解析技术之不完全测试
Java中四种XML解析技术之不完全测试-JSP教程,Java与XML:站长天空|虚拟主机...
Java解析XML文档――dom解析xml
JAVA解析XML的四种方法比较
JAXP(Java API for XML Parsing)
JAVA解析xml的四种方式比较
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服