XML解析

    xiaoxiao2025-04-01  12

    XML解析介绍

    如何调用 *.properties文件

    Java中配置文件的三种配置位置及读取方式 1.同包下的资源文件读取 2.将所有的资源文件放在根目录下 *编译后所有的资源文件都会自动进web-inf下 3 WEB-INF(或其子目录下)

    这是第一种方式,在同包的情况下获取 而第二种方式 如果不是同包的情况下,而是放在根目录下,我们就只要 在 db.properties 加个斜杠 " / " 就好了

    第三种方式,是读取WEB-INF中 我们需要写个servlet配置

    public class PropertiesServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub ServletContext context = req.getServletContext(); InputStream in = context.getResourceAsStream("/WEB-INF/db.properties"); java.util.Properties p = new java.util.Properties(); p.load(in); System.out.println(p.getProperty("uname")); System.out.println(p.getProperty("upass")); } }

    再在web.xml中配置 一样可以调用到db. properties 里的内容

    XML解析

    properties文件的解析方式有java.util.properties这个类来完成 xml文件:应该由一个工具类来完成 以下是三种不同解析的工具类 jdk/jdom sax解析 由上往下解析 dom4j解析 由外到内解析 dom4j解析我们需要下载它的包来完成 注意:导的所有方法都在dom4j下的

    我们建立一个student.xml,用以下方法来获得小王

    <?xml version="1.0" encoding="UTF-8"?> <students> <student sid="s001"> <name>小明</name> </student <student sid="s002"> <name>小芳</name> </student> <student sid='s003'> <name>小王</name> </student> </students> public static void main(String[] args) throws DocumentException { InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml"); SAXReader saxReader = new SAXReader(); Document doc = saxReader.read(in); System.out.println(doc.asXML()); // * 1.获取到所有的学生 List<Element> stuEles = doc.selectNodes("/students/student"); // * 2.遍历 for (Element stuEle : stuEles) { if ("s003".equals(stuEle.attributeValue("sid"))) { Element nameEle = (Element) stuEle.selectSingleNode("name"); // System.out.println(nameEle.asXML()); System.out.println(nameEle.getText());//获得文本内容 } }

    但如果我们是知道小王的id是’s003’的情况下可以这么写

    // * 3.做判断,如果sid=s003那么就拿到小王 Element stuEles003 =(Element) doc.selectSingleNode("/students/student[@sid='s003']");//直接找到student的sid属性中为s003的student System.out.println(stuEles003.selectSingleNode("name").getText());//打印student中的name元素里面的文本内容 }

    dom4j+xpath解析xml文件 xpath等同数据库的select语句

    document.selectNodes(xpath);//查一组 document.selectSingleNode(xpath);//查单个
    最新回复(0)