A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Stars√永恒 中级黑马   /  2014-3-13 11:36  /  636 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;  
  2. import javax.xml.parsers.DocumentBuilder;  
  3. import javax.xml.parsers.DocumentBuilderFactory;  
  4. import org.w3c.dom.Document;  
  5. import org.w3c.dom.Element;  
  6. import org.w3c.dom.Node;  
  7. import org.w3c.dom.NodeList;  
  8.   
  9. public class XMLReaderTest {  
  10.   
  11.     public static void main(String args[]) {  
  12.         Element element = null;  
  13.         // 可以使用绝对路劲  
  14.         File f = new File("test.xml");  
  15.   
  16.         // documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)  
  17.         DocumentBuilder db = null;  
  18.         DocumentBuilderFactory dbf = null;  
  19.         try {  
  20.             // 返回documentBuilderFactory对象  
  21.             dbf = DocumentBuilderFactory.newInstance();  
  22.             // 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象  
  23.             db = dbf.newDocumentBuilder();  
  24.   
  25.             // 得到一个DOM并返回给document对象  
  26.             Document dt = db.parse(f);  
  27.             // 得到一个elment根元素  
  28.             element = dt.getDocumentElement();  
  29.             // 获得根节点  
  30.             System.out.println("根元素:" + element.getNodeName());  
  31.   
  32.             // 获得根元素下的子节点  
  33.             NodeList childNodes = element.getChildNodes();  
  34.   
  35.             // 遍历这些子节点  
  36.             for (int i = 0; i < childNodes.getLength(); i++) {  
  37.                 // 获得每个对应位置i的结点  
  38.                 Node node1 = childNodes.item(i);  
  39.                 if ("Account".equals(node1.getNodeName())) {  
  40.                     // 如果节点的名称为"Account",则输出Account元素属性type  
  41.                     System.out.println("\r\n找到一篇账号. 所属区域: " + node1.getAttributes().getNamedItem("type").getNodeValue() + ". ");  
  42.                     // 获得<Accounts>下的节点  
  43.                     NodeList nodeDetail = node1.getChildNodes();  
  44.                     // 遍历<Accounts>下的节点  
  45.                     for (int j = 0; j < nodeDetail.getLength(); j++) {  
  46.                         // 获得<Accounts>元素每一个节点  
  47.                         Node detail = nodeDetail.item(j);  
  48.                         if ("code".equals(detail.getNodeName())) // 输出code  
  49.                             System.out.println("卡号: " + detail.getTextContent());  
  50.                         else if ("pass".equals(detail.getNodeName())) // 输出pass  
  51.                             System.out.println("密码: " + detail.getTextContent());  
  52.                         else if ("name".equals(detail.getNodeName())) // 输出name  
  53.                             System.out.println("姓名: " + detail.getTextContent());  
  54.                         else if ("money".equals(detail.getNodeName())) // 输出money  
  55.                             System.out.println("余额: " + detail.getTextContent());  
  56.                     }  
  57.                 }  
  58.   
  59.             }  
  60.         }  
  61.   
  62.         catch (Exception e) {  
  63.             e.printStackTrace();  
  64.         }  
  65.     }  
  66. }  
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马