Java 读取XML文件(DOM)。

XML文件的一个常用用途是保存数据,例如我们可以将连接数据库的相关信息保存到一个xml文件中,程序通过读取xml文件的内容获取信息。这样当数据库的连接信息改变时,我们只需要修改一下xml中对应的内容就可以保证在不修改源程序的情况下继续执行。

xml文件的读取有多种方法,本文介绍的是最简单的方法:利用DOM实现

视频教程:http://video.sina.com.cn/v/b/38133992-1801138375.html

步骤概括如下:

  1. 获取DocumentBuilderFactory
  2. 通过DocumentBuilder工厂产生一个DocumentBuilder
  3. 利用DocumentBuilder产生Document

Document可以看成是xml文件在内存中的一个镜像,这样,我们可以通过操作Document来实现对xml文件的操作。

下面通过简单的代码来实现上面描述的过程:

package wzs;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class XMLReader {

    public static void main(String[] args) {
        
        try {
            
            File f = new File("MyXml.xml");
            
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//步骤1
            
            DocumentBuilder builder = factory.newDocumentBuilder();//步骤2
            
            Document doc = builder.parse(f);//步骤3
            
            NodeList nl = doc.getElementsByTagName("action");
            
            for (int i = 0; i < nl.getLength(); i++) {
                
                System.out.println("result:"+ doc.getElementsByTagName("result")
                        .item(i).getFirstChild().getNodeValue());            
            }
            
        } catch (Exception e) {
            
            e.printStackTrace();
        }
    }
}

程序运行结果如下:

result:1_1.jsp
result:1_2.jsp
result:1_3.jsp
result:1_4.jsp

 

其中步骤3有一个方法parse(File f),用来将给定文件的内容解析为一个XML文档,并返回一个新的Document对象。

获取到Document对象后,再获取节点的值应该不是问题了,API中有对应的方法,这里就不再赘述了。

附上MyXml.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<struts>
  <constant name="struts.i18n.encoding" value="gb2312">324</constant>
  <package name="stuts2" extends="struts-default">
       <action name="login" class="ActionUnit.Person">
            <result name="s">1_1.jsp</result>
            <result name="t">1_2.jsp</result>
            <result name="m">1_3.jsp</result>
            <result name="fail">1_4.jsp</result>
       </action> 
        <action name="modifyPassword" class="student.ModifyPassword">
            <result name="success">2_1.jsp</result>
            <result name="fail">2_2.jsp</result>
       </action>
       <action name="studentquery" class="student.QueryScore">
            <result name="success">3_1.jsp</result>
            <result name="false">3_2.jsp</result>
       </action>
        <action name="infoquery" class="student.QueryInfo"> 
            <result name="success">4_1.jsp</result>
            <result name="false">4_2.jsp</result>
       </action>
  </package>
</struts>

转载:https://www.cnblogs.com/e241138/archive/2012/07/11/2586552.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值