XML 文件的使用

XML 文件的使用

1. 定义

XML俗称差妹儿,专业称之为: 可拓展标记语言
(1)何为标记,指的是一种标记语言,或者标签语言,即用一系列的标签来对数据进行描述
(2)何为拓展,简单来说就是用户可以自己定义标签

2. 作用

(1)作为数据传输的标准。好读,好维护,好扩展,还TM与语言无关,任谁都会选择他来担任这个数据传输的角色吧。。。
(2)作为配置文件。其实很多软件和框架,都会提供XML文件配置的方式,以便可以方便快捷的修改软件或框架的功能。
(3)持久化数据。啥意思?简单来说就是可以将数据存到xml文件中,把xml当做一个临时的小型数据库。当然,重要的数据还是要存到正经的数据库中的,别问为什么,问就是xml存数据会不安全(doge)。
(4)简化平台变更。在系统更换平台的时候,普通的数据会存在不兼容的问题,但是XML 数据以文本格式存储,使得 XML 在不损失数据的情况下,更容易扩展和升级。简直不要太好用

3. 书写介绍

<?xml version="1.0" encoding="utf-8"?>
<root>
	<child id="123">
		<subchild>加油</subchild>
	</child>
</root>

XML声明文件的可选部分,如果存在,则需要放在文档的第一行

每一个标签成为一个元素,分为头元素和根元素,一个XML元素可以包含字母、数字以及其它一些可见字符

像是"id" 这样在标签内的成为“属性”**,一个元素可以有多个属性,它的基本格式为:<元素名 属性名=“属性值” 属性名=“属性值”>

4. Java获取元素内容

4.1 先写一个XML文件

<?xml version="1.0" encoding="UTF-8"?>
<interfaces>
	<interface name="com.mec.source.core.ISourceHolderFunction" ></interface>
	<interface name="com.mec.source.core.ISourceRequesterFunction"></interface>
</interfaces>

4.2然后进行测试

package com.mec.test;

import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class Test {

	public static void main(String[] args) {
        //定义DocumentBuilder(文件建造器)
		DocumentBuilder documentBuilder = null;
		try {
            //初始化documentBuilder
			documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            //将上面的xml文件变为输入流
			InputStream is = Test.class.getResourceAsStream("/actionmapping.xml");
            //获取xml文件
			Document document= documentBuilder.parse(is);
            //获取“interface”标签列表
			NodeList nodeList = document.getElementsByTagName("interface");
			for (int index = 0; index < nodeList.getLength(); index++) {
                //对每一个标签循环
				Element element = (Element) nodeList.item(index);
                //获取name属性并输出
				String interfaceName = element.getAttribute("name");
				System.out.println(interfaceName);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}

		
	}	

}

posted @ 2023-05-26 14:28  Geek李  阅读(190)  评论(0)    收藏  举报