java访问xml文件

import  java.io.*;
import  javax.xml.parsers.DocumentBuilder;
import  javax.xml.parsers.DocumentBuilderFactory;
import  org.w3c.dom.Document;
import  org.w3c.dom.Element;
import  org.w3c.dom.Node;
import  org.w3c.dom.NodeList;
  
public  class  xmljava
  
public  static  void  main(String args[])
     {    
           Element element= null ;
           File f = new  File( "a.xml" );
           DocumentBuilder db= null ;         //documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
           DocumentBuilderFactory dbf= null
       try {
           
           dbf= DocumentBuilderFactory.newInstance();  //返回documentBuilderFactory对象   
           db =dbf.newDocumentBuilder(); //返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
  
           Document dt= db.parse(f);  //得到一个DOM并返回给document对象
           element = dt.getDocumentElement(); //得到一个elment根元素
            
           System.out.println( "根元素:" +element.getNodeName());  //获得根节点
  
         NodeList childNodes =element.getChildNodes() ;     // 获得根元素下的子节点
      
       for  ( int  i =  0 ; i < childNodes.getLength(); i++)      // 遍历这些子节点
  
    {       
        Node node1 = childNodes.item(i);  // childNodes.item(i); 获得每个对应位置i的结点
  
      if  ( "Account" .equals(node1.getNodeName())) 
      
                         // 如果节点的名称为"Account",则输出Account元素属性type
       System.out.println( "\r\n找到一篇账号. 所属区域: "    + node1.getAttributes().getNamedItem        ( "type" ).getNodeValue() +  ". " );
       NodeList nodeDetail = node1.getChildNodes();    // 获得<Accounts>下的节点
       for  ( int  j =  0 ; j < nodeDetail.getLength(); j++)
        {    // 遍历<Accounts>下的节点
           Node detail = nodeDetail.item(j);     // 获得<Accounts>元素每一个节点
             if  ( "code" .equals(detail.getNodeName()))    // 输出code
             System.out.println( "卡号: "  + detail.getTextContent());
              else  if  ( "pass" .equals(detail.getNodeName()))  // 输出pass
                 System.out.println( "密码: "  + detail.getTextContent());
              else  if  ( "name" .equals(detail.getNodeName()))  // 输出name
                 System.out.println( "姓名: "  + detail.getTextContent());
              else  if  ( "money" .equals(detail.getNodeName()))  // 输出money
                  System.out.println( "余额: " + detail.getTextContent());
        
         }
       }
  
     }
}
  
catch (Exception e){System.out.println(e);}
      
}
}
 
 
 
 
 
 
 
 
//xml文件
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<? xml  version = "1.0"  encoding = "gbk" ?>      
< Accounts >
< Account  type = "by0003"
< code >100001</ code >
< pass >123</ pass >
< name >李四</ name
< money >1000000.00</ money
</ Account
< Account  type = "hz0001"
< code >100002</ code >
< pass >123</ pass >
< name >张三</ name
< money >1000.00</ money
</ Account
</ Accounts >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值