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

处理的xml文件内容:

  1. <?xml version="1.0" encoding="gbk"?>
  2. <Accounts>
  3. <Account type="type1">
  4. <code>100001</code>
  5. <pass>123</pass>
  6. <name>李四</name>
  7. <money>1000000.00</money>
  8. </Account>
  9. <Account type="type2">
  10. <code>100002</code>
  11. <pass>123</pass>
  12. <name>张三</name>
  13. <money>1000.00</money>
  14. </Account>
  15. </Accounts>

Java中读取xml方法的更多相关文章

  1. Java中读取文件

    Java中读取文件,去除一些分隔符,保存在多维数组里面 public void readFile(String filePath) { File file=new File(filePath); Ar ...

  2. java中读取特殊文件的类型

    java中读取特殊文件的类型: 第一种方法(字符拼接读取): public static String getType(String s){ String s1=s.substring(s.index ...

  3. Java中读取.properties配置文件的通用类

    由于Java中读取配置文件的代码比较固定,所以可以将读取配置文件的那部分功能单独作为一个类,以后可以复用.为了能够达到复用的目的,不能由配置文件中每一个属性生成一个函数去读取,我们需要一种通用的方法读 ...

  4. Java中的Xml配置文件(新手)

    Java中的Xml配置文件,本文是转发转发转发!重要的事情说三遍 一:概念 1.XML  Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传 ...

  5. 浅谈Java中的hashcode方法

    哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: 1 public native int hashCode(); 根据 ...

  6. 千万不要误用 java 中的 HashCode 方法

    刚才debug追堆栈的时候发现一个很奇怪的问题 我用IE8和Google的浏览器访问同一个地址 Action的 scope="session" 也设置了 而且两个浏览器提交的参数m ...

  7. Java中的toString()方法

    Java中的toString()方法 目录 Java中的toString()方法 1.    对象的toString方法 2.    基本类型的toString方法 3.    数组的toString ...

  8. Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...

  9. 【转】浅谈Java中的hashcode方法(这个demo可以多看看)

    浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native i ...

随机推荐

  1. java使用split分隔,需要注意的点

    String severName = "10.6.62.244"; System.out.println(severName.split(".").length ...

  2. 跟着百度学PHP[4]OOP面对对象编程-13-魔术方法__set(),__get(),__isset(),__unset()

    __set() 在对象访问私有成员的时候自动被调用,达到了给你看,但是不能给你修改的效果!(在对象访问一个私有的成员的时候就会自动的调用该魔术方法) __get() 方法用于获取私有属性值.(在设置私 ...

  3. JQ库函数记忆要点

    1.核心(1.核心函数2.对象访问3.数据缓存4.队列控制4.插件机制5.多库共存) 2.属性(1.属性2.css类3.HTML代码/文本/值) 3.选择器(表单,表单对象属性,基本,内容,子元素,层 ...

  4. POJ 3641 快速幂+素数

    http://poj.org/problem?id=3641 练手用,结果念题不清,以为是奇偶数WA了一发 #include<iostream> #include<cstdio> ...

  5. 将 JAR 转为 EXE – JSMOOTH 的使用教程(第二期)(转载)

    http://www.iteknical.com/convert-jar-to-exe-phase-ii-jsmooth-use-tutorial/

  6. AngularJs之ng-repeat的用法

    可参考文章:http://blog.csdn.net/renfufei/article/details/43061877 ng-repeat信息展示的核心: [1]异步读取数据源 works,见代码一 ...

  7. Eclipse CDT “Symbol NULL could not be resolved”

    在ubuntu里装的eclipse C/C++版,交叉编译程序时,总是提示Symbol NULL could not be resolved.Symbol size_t could not be re ...

  8. 错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败

    错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, Pu ...

  9. pc/app 项目/功能设计

    2015-08-11 15:29:59 首先, 提供服务的整个系统包含哪几个设备 用户->[PC浏览器|APP|APP浏览器]->web服务器->[PHP/JAVA组件]->[ ...

  10. Java中时间日期格式化

    1.与日期时间相关的类:      第一:java.util.Date;                           将时间作为一个整体使用.处理时,使用Date类较为简便      第二:j ...