zoukankan      html  css  js  c++  java
  • Java如何读取XML文件 具体实现

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

    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 XMLReaderTest { 
      public static void main(String args[]) {
      Element element = null;
      // 可以使用绝对路劲
      File f = new File("test.xml"); 
       // documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
      DocumentBuilder db = null;
      DocumentBuilderFactory dbf = null;
      try {
       // 返回documentBuilderFactory对象
       dbf = DocumentBuilderFactory.newInstance();
       // 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
       db = dbf.newDocumentBuilder(); 
        // 得到一个DOM并返回给document对象
       Document dt = db.parse(f);
       // 得到一个elment根元素
       element = dt.getDocumentElement();
       // 获得根节点
       System.out.println("根元素:" + element.getNodeName()); 
        // 获得根元素下的子节点
       NodeList childNodes = element.getChildNodes(); 
        // 遍历这些子节点
       for (int i = 0; i < childNodes.getLength(); i++) {
        // 获得每个对应位置i的结点
        Node node1 = childNodes.item(i);
        if ("Account".equals(node1.getNodeName())) {
         // 如果节点的名称为"Account",则输出Account元素属性type
         System.out.println("
    找到一篇账号. 所属区域: " + node1.getAttributes().getNamedItem("type").getNodeValue() + ". ");
         // 获得<Accounts>下的节点
         NodeList nodeDetail = node1.getChildNodes();
         // 遍历<Accounts>下的节点
         for (int j = 0; j < nodeDetail.getLength(); j++) {
          // 获得<Accounts>元素每一个节点
          Node detail = nodeDetail.item(j);
          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) {
       e.printStackTrace();
      }
     }
    }

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

     


     

    然后我们测试的XML文件(test.xml)要放在项目工程的根目录下,其内容是:

    <?xml version="1.0" encoding="gbk"?>
    <Accounts>
     <Account type="type1">
      <code>100001</code>
      <pass>123</pass>
      <name>李四</name>
      <money>1000000.00</money>
     </Account>
     <Account type="type2">
      <code>100002</code>
      <pass>123</pass>
      <name>张三</name>
      <money>1000.00</money>
     </Account>
    </Accounts>



    直接运行代码,输出:

    根元素:Accounts

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

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

  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/4760904.html
Copyright © 2011-2022 走看看