XML的详细

Java中配置文件的三种配置位置

一:配置文件存在位置有三种
  ①存放于根目录下,/代表获取src根目录的绝对路径
  ②存放于同一类的包下,不加/代表同类名包下的相对路径;
  ③存放于WEB-INF目录下

  1. 同包

2同一个scr目录

3.WBE-INF

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/text")

public class TextServlet extends HttpServlet{

    protected void service(HttpServletRequest req,HttpServletResponse rep) throws ServletException ,IOException{

        InputStream ins = req.getServletContext().getResourceAsStream("/WEB-INF/db.properties");

        Properties p=new Properties();

        p.load(ins);

        System.out.println(p.getProperty("uname"));

        System.out.println(p.getProperty("upass"));

    }

}

二: 找s003的内容

思路

          1.读取到students.xml的的内容

          2.获取到所以students标签的内容

          3.获取到students标签所以的sid

          4.获取sid=s003时候,获取name标签内容

import java.io.InputStream;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.Node;

import org.dom4j.io.SAXReader;

public class T2 {

        /**

         * 思路

         * 1.读取到students.xml的的内容

         * 2.获取到所以students标签的内容

         * 3.获取到students标签所以的sid

         * 4.获取sid=s003时候,获取name标签内容

         *

         */

    public static void main(String[] args) throws Exception {

        //获取文件的io流

        InputStream ins = T2.class.getResourceAsStream("/students.xml");

        //创建xml文件的saxReader对象

        SAXReader srd=new SAXReader();

        Document doc= srd.read("ins");

        //selectNodes:获取对应的对象  返回list

        List<Element> stu = doc.selectNodes("/students/student");

        for (Element st : stu) {

        //attributeValue:获取指定的属性值

        String sid=st.attributeValue("sid");

          if("s003".equals(sid)) {

        //selectSingleNode:获取对应的对象   返回单个属于元素的对象

             Element nameEl = (Element) st.selectSingleNode("name");

             System.out.println(nameEl.getText());

            }

        }

    }

}

三:例子(栗子)

1:获取action中type的值

2:获取第二个action中type的值

3:获取第二个action所有forward的path

4:获取第二个action的第二个forward的path

import java.io.InputStream;

import java.util.List;

 

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.Node;

import org.dom4j.io.SAXReader;

public class config {

    public static void main(String[] args) throws Exception{

        //获取读取给文件的io流

        InputStream ins = config.class.getResourceAsStream("/config.xml");

        //创建读取xml文件的saxReader对象

        SAXReader sa = new SAXReader();

        //获取文件的document对象

        Document doc = sa.read(ins);

        //找到config下的所有action节点

        List<Node> node1 = doc.selectNodes("/config/action");

        //遍历action节点

        for (Node n : node1) {

        //将节点对象转换成为元素对象

        Element em=(Element)n;

        //找到type属性

        String value = em.attributeValue("type");

        System.out.println(value);

        }

        System.out.println("====");

        //config节点下path属性为/loginAction的action节点

         Node two = doc.selectSingleNode("/config/action[@path='/loginAction']");

         Element el=(Element)two;

         //获取该节点下的type属性

         String type = el.attributeValue("type");

         System.out.println(type);

         System.out.println("====");

        //获取config节点下的forward节点

        List<Node> forwardn = two.selectNodes("forward");

        for (Node node : forwardn) {

            Element els=(Element)node;

        //获取config节点下的forward节点的path属性

            String path = els.attributeValue("path");

            System.out.println(path);

        }

        System.out.println("====");

        Node name = doc.selectSingleNode("/config/action[@path='/loginAction']/forward[@name='success']");

        Element elx=(Element)name;

        String twoPath = elx.attributeValue("path");

        System.out.println(twoPath);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值