转载自:http://www.jb51.net/article/44338.htm

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

/*if("index_SCORM.html".equals(detail2.getAttributes().getNamedItem("href").getNodeValue())){
return "index_SCORM.html";*/

  1.  

然后我们测试的XML文件(test.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>

直接运行代码,输出:

根元素:Accounts

找到一篇账号. 所属区域: type1.
卡号: 100001
密码: 123
姓名: 李四
余额: 1000000.00

找到一篇账号. 所属区域: type2.
卡号: 100002
密码: 123
姓名: 张三
余额: 1000.00

Java如何读取XML文件 具体实现的更多相关文章

  1. java Domj4读取xml文件

    先概括,再以代码形式给出. 获取节点: Iterator  Element.nodeIterator();  //获取当前标签节点下的所有子节点 获取 标签: Element Document.get ...

  2. Java反射——读取XML文件,创建对象

    读取XML文件,创建对象 config.xml <?xml version="1.0" encoding="UTF-8"?> <beans&g ...

  3. java Domj4读取xml文件加强训练案例

    需求:给出一段xml文件.要求按照鸳鸯输出. xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> & ...

  4. Java获取路径方法&相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  5. JAVA读取XML文件数据

    XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...

  6. java 读取XML文件作为配置文件

    首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...

  7. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  8. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  9. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

随机推荐

  1. java系统高并发解决方案(转载)

    转载博客地址:http://blog.csdn.net/zxl333/article/details/8454319 转载博客地址:http://blog.csdn.net/zxl333/articl ...

  2. 【poj1740】 A New Stone Game

    http://poj.org/problem?id=1740 (题目链接) 男人八题之一 题意 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该 ...

  3. NOIP2005提高组 过河

    题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...

  4. Opencv显示图片并监听鼠标坐标

    #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include & ...

  5. mysql 为字段增加主键

    alter table 表名 add primary key(`字段`)

  6. linux下python版webshell后门查杀工具

    使用说明: 1.查杀指定路径:python webshell.py 路径 2.按时间查找文件:python webshell.py 路径 “2013-09-28 00:00:00″ # -*- cod ...

  7. IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  8. 用JSON-server模拟REST API(一) 安装运行

    用JSON-server模拟REST API(一) 安装运行 在开发过程中,前后端不论是否分离,接口多半是滞后于页面开发的.所以建立一个REST风格的API接口,给前端页面提供虚拟的数据,是非常有必要 ...

  9. 使用mysql服务来记录用户的反馈

    经过前几篇教程的学习,相信你对于微信的操作与SAE和webpy都有了些了解,那么这次我想加一个功能,通过mysql来记录用户的反馈,如用户输入fk+内容,然后通过一个页面来显示,最终的效果如下 htt ...

  10. 第15章 使用Postfix与Dovecot收发电子邮件

    章节概述: 本章节从电子邮局系统的组成角色开始讲起,了解MUA.MTA与MDA的作用,熟悉熟悉SMTP.POP3与IMAP4邮局协议. 学习postfix与dovecot服务程序的使用方法并逐条讲解配 ...