• 学习笔记——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);
    	}
    
    }
    

      

  • 相关阅读:
    丑数——剑指offer面试题34
    把整数排成最小的数——剑指offer面试题33
    从1到n整数中1出现的次数——剑指offer面试题32
    各种排序方法及其比较
    scrapy安装
    水仙花数
    分数化小数(decimal)
    子序列的和
    倒三角
    韩信点兵
  • 原文地址:https://www.cnblogs.com/helloDuo/p/8261501.html
Copyright © 2020-2023  润新知