可扩展标记语言
特性:
XML具有平台无关性,是一门独立的标记语言
可以在任意平台和语言编辑器打开都会乱码,不需要任何数据来描述就行
XML具有自我描述性
软件与软件之间交流的方式
都是字符串,不一定是文件
为什么学习XML
1. 网络数据传输
2. 数据存储
3. 配置文件
语法格式:
- XML文档声明
- 标记
XML是由一个个标记组成
语法:
开始标记(开放标记):<标记名称>
结束标记(闭合标记):</标记名称>
大小写必须一样 - 一个XML,必须有且仅有一个根标记
4. 标记可以嵌套但是不能交叉
5. 标记名称允许重复
6. 标记除了开始和结束,还有属性
例如: - 注释不能嵌套注释
XML读取代码
Java中的xml解析有4种
sax解析也就是一行一行解析,第一行解析完,就会把资源释放,并且只读
DOM解析先把xml文档先加载到内存中,然后在解析
JDOM解析
实现了很多工具类,使用的是具体类,优化了DOM的API
使用了JAVA集合类
DOM4J解析
引入jar文件
创建一个指向XML文件的输入流
创建一个XML读取工具对象
使用读取工具,读取xml文档的输入流,并且得到文档对象
通过文档对象,获取xml文档中的根元素对象
元素对象Element
指的是XML文档中的单个节点.
常用方法:
-
获取节点名称 String getName();
-
获取节点内容 String getText();
-
设置节点内容 String setText();
-
根据子节点的名称 , 获取匹配名称的第一个子节点对象. Element element(String 子节点名称); 5. 获取所有的子节点对象 List elements();
-
获取节点的属性值 String attributeValue(String 属性名称);
-
获取子节点的内容 String elementText(String 子节点名称);
-
添加子节点 Element addElement(String 子节点名称);
-
添加属性 void addAttribute(String 属性名,String 属性值);
public class Dome01 {
public static void main(String[] args) throws IOException, DocumentException {
FileInputStream fis = new FileInputStream(“d://Demo1.xml”);
SAXReader sr = new SAXReader();
Document doc = sr.read(fis);
Element root = doc.getRootElement();
System.out.println(root.getName());List<Element> es = root.elements(); for(int i=0;i<es.size();i++){ Element book = es.get(i); System.out.println(book.attributeValue("id")); System.out.println(book.elementText("name")); System.out.println(book.elementText("info")); System.out.println("-----------------------------"); } fis.close();
}
}