首页 > 其他分享 >XML标记语言

XML标记语言

时间:2024-09-18 12:50:10浏览次数:3  
标签:XML 语言 自定义 标记 标签 元素 import id

XML 简介

XML(可扩展标记语言) 是一种标记语言,设计用于存储和传输数据。与 HTML 相比,XML 主要用于描述数据的内容,而不是展示数据的外观。它由万维网联盟(W3C)制定,是一种跨平台、系统无关的语言。

XML的核心特性之一是它的可扩展性,允许用户根据需要创建自定义标签,从而使得XML可以在各种不同的领域应用,如文档存储、数据交换、配置文件等。XML的设计目的是便于人类和机器读取与解析,它被广泛用于网络应用、数据库通信以及各种文件格式。

XML 基本格式

XML 文件是通过一系列的元素来定义的,元素通常通过开始标签和结束标签来包裹数据。以下是 XML 文件的一些基本格式和规则:

1. XML 声明

每个 XML 文档可以包含一个声明,声明版本以及编码方式,通常在文件的第一行。常见形式是:

<?xml version="1.0" encoding="UTF-8"?>
2. 根元素

每个 XML 文档必须包含一个且只有一个根元素,它是所有其他元素的容器。例如:

<root> <!-- 其他元素 --> </root>

根标签的类型是可以自定义的,XML 并没有限制根标签的具体名称。 

3. 元素(标签)

XML 元素是数据的核心组成部分,用开始和结束标签包裹。标签名称是区分大小写的,标签名称可以自定义。如下:

<name>John</name>

在这个例子中,<name> 是开始标签,</name> 是结束标签,内容是 John

4. 属性

XML 元素可以包含属性,用于描述元素的额外信息。属性写在开始标签中,格式为 name="value"

<person age="30">John</person>

在这个例子中,ageperson 元素的一个属性,值为 30

5. 嵌套元素

元素可以嵌套在其他元素中,这形成了层次结构。如下:

<note>
  <to>Alice</to>
  <from>Bob</from>
  <message>Hello!</message>
</note>

这里,<note> 是根元素,包含了 tofrommessage 等子元素。

6. 注释

XML 可以包含注释,用于在文档中添加说明性文字,不会被解析器处理。注释使用 <!-- --> 包裹:

<!-- 这是一个注释 -->

7. 空元素

XML 元素可以是空的,也就是说没有内容。空元素可以使用自闭合标签来表示:

<br/>

8. CDATA 区块

CDATA(Character Data)区块用于包含不能解析为 XML 标签的特殊字符,通常用于嵌入脚本或需要保留的文本内容。CDATA 区块写法如下:

<![CDATA[ 这里的内容不会被解析器当作标签处理 ]]>

XML 文件示例

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Alice</to>
  <from>Bob</from>
  <heading>Reminder</heading>
  <body>Don't forget the meeting tomorrow!</body>
</note>

在这个例子中:

  • note 是根元素,包含了几个子元素:tofromheadingbody
  • 每个元素用标签包裹了相应的数据内容。

总结

XML 通过一系列标签和属性来描述数据,格式严谨、结构清晰。它不仅可以在不同系统之间传输数据,还易于扩展和自定义,因此被广泛用于数据存储和通信的场景。

自定义XML: 

<?xml version="1.0" encoding="UTF-8"?>
<!--根标签只能有一个
第一行永远都是<?xml version="1.0" encoding="UTF-8"?>
xmL是有约束,约束用于限定xml内就能编写的内容
-->
<jdbk>
    <dev>
        <username></username>
        <password></password>
        <driver></driver>
        <url></url>
    </dev>
    <test>
        <username></username>
        <password></password>
        <driver></driver>
        <url></url>
    </test>
    <formal>

    </formal>
</jdbk>
  • 根标签 <jdbk>:整个文档的主标签,表示一个大系统的配置。
  • <dev>:开发环境的配置信息。
  • <test>:测试环境的配置信息。
  • <formal>:正式环境的配置信息,虽然目前为空,但在实际部署时需要填写。

这三个标签分别用于不同的环境配置,包含了用户名、密码、驱动和URL等信息。这种结构通常用于描述不同环境下的数据库或服务连接配置。、

解析XML:

通过 DOM4J 库,你可以方便地读取 XML 文件中的内容,并对其进行操作,如读取属性、获取子元素、遍历数据等。

package DOM4J;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.InputStream;
import java.util.List;

public class Test {
    public static void testREad() throws DocumentException {
        // 读取jdbc.xml配置文件,获取document对象
        SAXReader saxReader = new SAXReader();
        //通过类加载器获得指向字节码根路径下的指定文件的输入流
        InputStream resourcesASStream = Test.class.getClassLoader().getResourceAsStream("jdbk.XML");
        // 通过输入流获得配置文件,解析成-个dom对象
        Document document =  saxReader.read(resourcesASStream);
        // 从document对象上获发配置文件中的信息

        // 从document对象上获取根元素
        Element rootElement =  document.getRootElement();


        // 获取元素下的子元素
        List<Element> elements = rootElement.elements();
        for (Element element : elements) {
            System.out.print(element.getName()+" ");

            // 获取属性节点
            Attribute id = element.attribute("id");
            System.out.println(id.getName() + "=" + id.getValue());

            // 继续读取子元素
            List<Element> elements1 = element.elements();
            for (Element element1 : elements1) {
                System.out.println(element1.getName() + " " + element1.getText());
            }
        }
    }

    public static void main(String[] args) throws DocumentException {
        testREad();
    }
}

输出:

dev id=001
username 
password 
driver 
url 
test id=002
username 
password 
driver 
url 
formal id=003

标签:XML,语言,自定义,标记,标签,元素,import,id
From: https://blog.csdn.net/gege_0606/article/details/142168522

相关文章

  • AgentTuning:提升大型语言模型的通用Agent能力
    人工智能咨询培训老师叶梓转载标明出处大模型被用作现实中复杂任务的Agent时,它们的表现往往不如商业模型,如ChatGPT和GPT-4。这些任务要求LLMs作为中央控制器,负责规划、记忆和工具利用,这就需要精巧的提示方法和鲁棒性强的LLMs来实现。尽管已有多种提示方法被提出来完成特定的A......
  • 数据控制语言(DCL,Data Control Language)
    目录GRANT语句REVOKE语句权限类型数据控制语言(DCL,DataControlLanguage)用于管理数据库中的权限和访问控制。DCL语句主要用于控制用户对数据库对象的访问权限。常见的DCL语句有GRANT和REVOKE。GRANT语句GRANT语句用于授予用户或角色对数据库对象(如表、视图......
  • HA-FITC透明质酸荧光标记Hyaluronic Acid-FITC【新维创荧光标记】
    HA-FITC透明质酸荧光标记HyaluronicAcid-FITC【新维创荧光标记】组织工程:在组织工程领域,透明质酸常被用作构建生物支架的材料,FITC-HA可用于改善生物材料的生物相容性,并提供荧光示踪功能。同时,还可以观察支架在生物体内的位置、降解和细胞定植情况,为组织工程的研究提供有力支......
  • 自然语言处理实战项目
    自然语言处理(NLP)实战项目是一个结合了理论知识与实践操作的综合性学习过程,旨在通过实际项目来加深学习者对NLP技术的理解和应用能力。以下是一个详细的NLP实战项目指南,涵盖项目选择、技术准备、实施步骤以及未来发展方向。一、项目选择在NLP领域,实战项目种类繁多,从基础的......
  • C#里方法的怎么编写XML文档注释说明,用于调用时参数提示等
    一.什么是xml的注释?答:XML注解是一种用于描述XML文档结构和元素内容的标记语言。它是通过在XML文档中使用特殊的标记来定义文档结构和元素属性的。XML注解通常用于数据编码和数据交换的应用程序之间,以确保数据的一致性和互操作性。XML注解具有良好的可扩展性和可读性,因此它通......
  • C语言:结构体在内存中存储(内存对齐)
    一、结构体是什么1.结构体的声明2.结构体的初始化二、结构体的内存对齐1.对齐规则 2.为什么存在内存对齐总结前言结构体是重要的知识点,其中,结构体的内存对齐是较重要的部分(本人使用的编译器是VisualStudio2022,下面介绍的对齐数也是以VS默认的8为标准),对后面学习数据......
  • C语言:整数和浮点数在内存中的存储--(超好理解)
    目录一、整数在内存中的存储(有符号整数)1.设置反码和补码的的目的二、浮点数在内存中的存储1.浮点数取的过程2.例题解析总结目前学习到C语言的各种数据类型在内存中的存储的方式和过程,自己初学的时候下了很多时间去学习理解,为了帮助和自己一样的在第一次初学C语言存储......
  • 【时时三省】(C语言基础)指针进阶 例题8
    山不在高,有仙则名。水不在深,有龙则灵。              ----CSDN时时三省第一个打印2a+6不管它是多大前面是=s 都得变成两个字节所以打印2第二个打印5sizeof里面的表达式是不参与运算的所以打印5上面所有例题总结:数组名的意义1.sizeof(......
  • [语言月赛 202408] 蓝色的网易云
    [语言月赛202408]蓝色的网易云题目背景你也在听吗落单的孩子啊别害怕别害怕黑夜不会太长悬崖上的花让我为你摘下数一瓣落一瓣就少一朵忧伤题目描述风的歌单中共有nn......
  • C语言--指针
    1.地址与指针想要弄明白什么是指针,就必须了解数据在内存中是如何储存的,又是怎么被读取的。系统会按字节对每个内存单元进行编号,这些内存单元就好比是许多带有编号的小房间,想要使用内存,就需要知道房间编号。每一个房间都有一个地址,我们通过访问地址就能找到相应的房间。那我......