zoukankan      html  css  js  c++  java
  • 学习笔记——xml的入门及解析

    需求:根据配置文件创建类,并调用方法

    分析:1.XML 2.解析XML 3. 根据全限定名创建对象,调用方法

    XML: 可扩展的标签语言

                作用:存储数据。(主要用于配置文件)

                后缀名.xml

               书写规范 1. 区分大小写 

                              2. 应该有一个根标签

                              3. 标签必须关闭

                              4.属性以引号引起来 <xx att = "value">

                              5.标签体中的空格或者换行或者制表符等内容都是作为数据内容存在

                              6.转义字符需要转义

    xml的组成部分:

         声明(必须顶格放在第一行 ):

                 <?xml version="1.0" encoding="UTF-8">

         元素(标签): <xx><xx/>

         属性: <xx 属性名="属性值"/>

         注释:<!-- -->

         CDATA:  保证数据原样输出

           格式:<![CDATA[原样输出内容]]>

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5">
        <servlet>
            <servlet-name>HelloMyServlet</servlet-name>
            <servlet-class>com.itheima.HelloMyServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>HelloMyServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>

    ////////////////////////////////////////////////////////////////////

    xml的解析:

         解析方式:  1.sax   特点:逐行解析,只能查询 2.dom:特点:一次性将文档加载到内容中,形成一个dom树进行curd操作

         解析技术  dom4j 常用的解析开发包

    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    public class Dom4jDemo {
         public static void main(String[] args) throws DocumentException{
             //创建核心对象
             SAXReader reader = new SAXReader();
             Document doc = reader.read("C:\Users\zhoudongqi\workspace\day08\xml\web.xml");
             Element root = doc.getRootElement();
             List<Element> list = root.elements();
             for(Element ele : list){
                 String text = ele.elementText("servlet-name");
                         System.out.println(text);
             }
         }
    }

        Xpath: 1. 导包   2.  api    selectNote("表达式") ;  selectSingleNote("表达式"); 

    //////////////////////////////////////////

    反射:

          1. 获取对应的Class对象

               Class c = Class.forName("全限定名");

               Class c = 类名.class

               Class c == 对象.getClass();

           2. 通过Class对象创建实例

                Object  c.newInstance();

           3.通过Class 对象获取方法

               Method m = c.getMethod();

           4.让方法执行

             m.invoke(实例对象, 参数);

    package demo1;
    
    public class HelloMyServlet {
        public double f(double a, double b){
        	System.out.println(a+b);
        	return a+b;
        }
    }
    

      

    package demo1;
    
    import java.lang.reflect.Method;
    
    public class Test1 {
    
    	public static void main(String[] args) throws Exception {
    		Class c = Class.forName("demo1.HelloMyServlet");
    	    HelloMyServlet a = (HelloMyServlet) c.newInstance();
    	    Method method = c.getMethod("f", double.class, double.class );
    	    method.invoke(a, 3, 3);
    	}
    
    }
    

      

  • 相关阅读:
    一行代码轻松修改 Text Field 和 Text View 的光标颜色 — By 昉
    六种手势识别,你用了哪些?——董鑫
    Mac 屏幕录制Gif 制作 By-胡罗
    利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋
    iOS加载Gif图片的N种方式 By-H罗
    [手游项目3]-10-Go语言atomic原子操作
    [手游项目3]-9-Go语言sync.Map(在并发环境中使用的map)
    LRU原理和Redis实现
    Cleanup failed to process the following paths错误的解决
    [手游项目3]-8-排行榜redis实现
  • 原文地址:https://www.cnblogs.com/helloDuo/p/8261501.html
Copyright © 2011-2022 走看看