学习笔记——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);
}
}
学习笔记——xml的入门及解析的更多相关文章
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
- iOS学习笔记-地图MapKit入门
代码地址如下:http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错漏 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
- Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...
- Laravel学习笔记之Session源码解析(上)
说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助.Laravel在web middleware中定义了 ...
- html学习笔记-XML
html学习笔记-XML Table of Contents 1. XML简介 2. XML用途 3. XML树结构 4. XML语法 5. XML元素 6. XML属性 7. XML验证 8. XM ...
- tensorflow学习笔记二:入门基础 好教程 可用
http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础 TensorFlow用张量这种数据结构来表示所有的数据.用一 ...
- Java学习笔记--xml构造与解析之Sax的使用
汇总:xml的构造与解析 http://www.cnblogs.com/gnivor/p/4624058.html 参考资料:http://www.iteye.com/topic/763895 利用S ...
- .net学习笔记---xml基础知识
一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...
随机推荐
- nmap 常用命令
10.1.1.0/24 = 10.1.1.1-10.1.1.255 #c段扫描10.1.1.0/16 = 10.1.1.1-10.1.255.255 #b段扫描10.1.1.0/8 = ...
- 洛谷P4689 [Ynoi2016]这是我自己的发明(莫队,树的dfn序,map,容斥原理)
洛谷题目传送门 具体思路看别的题解吧.这里只提两个可能对常数和代码长度有优化的处理方法. I 把一个询问拆成\(9\)个甚至\(16\)个莫队询问实在是有点珂怕. 发现询问的一边要么是一个区间,要么是 ...
- 自学Python4.2-装饰器
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- python 获取当前文件夹下所有文件名
os 模块下有两个函数: os.walk() os.listdir() 1 # -*- coding: utf-8 -*- 2 3 import os 4 5 def file_name(file_d ...
- 【php】php从多个数组中取出最大的值
function _arr_max($arr = []){ if(func_num_args() > 1){ $result = []; foreach(func_get_args() as $ ...
- nginx日志文件的定时切割与归纳
应用环境:生产环境中的Nginx服务器,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率.同时,为了 方便对日志进行分析计算,须要对日志文件进行定时切割.定时切割的方式有按月切割.按天切割 ...
- HDU--5269 ZYB loves Xor I (字典树)
题目电波: HDU--5269 ZYB loves Xor I 首先我们先解决 ai xor aj 每个数转化为二进制 我们用字典树统计 每个节点 0 和 1 的出现的个数 #include< ...
- uWSGI+Nginx安装、配置
1.关闭SELINUX: [root@PYTHON27 /]# vim /etc/selinux/config 将SELINUX=enforcing修改为SELINUX=disabled 2.关闭防火 ...
- A1009. Product of Polynomials
This time, you are supposed to find A*B where A and B are two polynomials. Input Specification: Each ...
- 数据库日志redo和undo
数据库的ACID属性 Atomicity:原子性,以事物transact为最小单位,事物中的所有操作,要么都执行完,要么都不执行,不存在一部分操作执行,另一部分操作不执行的情况. Consistenc ...