44 Java访问解析XML文件 - 雪炭网

Java访问解析XML文件2014-10-20 16:18:03

( 1人已投票,[高质量] )
分享:
31.3K

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);}
}
}


test.xml

<?xml version="1.0" encoding="gbk"?>   
<Accounts>
<Account type="abc002">
<code>10011</code>
<pass>12345</pass>
<name>Lisi</name>
<money>1000000.00</money>
</Account>
<Account type="abc001">
<code>10010</code>
<pass>123456</pass>
<name>ZhangSam</name>
<money>1000.00</money>
</Account>
</Accounts>






头像

snowcoal
  • java
  • xml解析

本文标签:

javaxml解析

收藏到我的私密空间

标题:Java访问解析XML文件

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限

如果本站的内容有幸帮助到了您,建议您了解一下当页的广告内容哦,我们的进步离不开您的支持,Thank you~