XML的写法

下面我将以如下代码来解释下XML的写法

<?xml version="1.0" encoding="UTF-8" ?>
<Steam>
    <steam id="1">
        <zhanghao>admin</zhanghao>
        <mima>123</mima>
        <num>120</num>
    </steam>
    <steam id="2">
        <zhanghao>admin</zhanghao>
        <mima>234</mima>
        <num>200</num>
    </steam>
</Steam>

 以上是我的XML代码

<?xml version="1.0" encoding="UTF-8" ?>是XML文档的声明,一下是查到的XML作用

这串代码在idea工具,打个“<x”就能出现了,后面是编译格式是utf-8(中文)格式

<?xml version="1.0" encoding="UTF-8" ?> 是XML声明,它在XML文档中起到几个重要的作用:

  1. 指定XML版本version="1.0" 表示该XML文档遵循XML 1.0规范。XML有多个版本,但这个声明指定了文档使用的是第一个广泛接受和实施的版本,即XML 1.0。

  2. 指定文档编码encoding="UTF-8" 定义了文档中字符的编码方式。UTF-8是一种非常普遍且能够表示多种语言的字符编码方式。通过这个声明,解析器知道如何正确地读取和解释文档中的字符。

  3. 确认文档是XML:这个声明告诉解析器该文档是一个XML文档,而不是其他类型的文档。这对于处理混合内容(例如,当服务器返回的内容可能是HTML、XML或其他类型)的客户端来说尤其重要。

  4. 标准化:通过包含XML声明,文档遵循了XML标准,这使得文档可以在不同的系统、平台和应用程序之间更容易地交换和解析。

  5. 避免混淆:对于某些应用程序和解析器,如果没有XML声明,它们可能会混淆XML文档与其他类型的文档,如HTML。

总之,XML声明是XML文档的一个重要组成部分,它确保了文档的正确解析和跨平台的兼容性。在创建XML文档时,通常建议始终包含XML声明

所以说声明一般不要省略

声明完后,开始创建XML代码,这个可以看成是对象的声明,id是第几个的意思,zhanghao是账号的意思,mima是密码的意思,num是数量的意思,steam是对象,都是我随便起的。

然后我们看下test(测试类内容)

package com.bw.test;
import com.bw.domain.Steam;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

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

public class MyTest2 {
    @Test
    public void test2() throws DocumentException {
        InputStream resource = MyTest2.class.getClassLoader().getResourceAsStream("steam.xml");
        SAXReader reader = new SAXReader();
        Document read = reader.read(resource);
        Element element = read.getRootElement();
        List<Element> elements = element.elements();
        for (Element element1 : elements) {
            Steam s=new Steam();
            String id = element1.attributeValue("id");
            s.setId(new Integer(id));
            List<Element> elements1 = element1.elements();
            for (Element element2 : elements1) {
                String name = element2.getName();
                String val = element2.getTextTrim();
                if ("zhanghao".equals(name)){
                    s.setZhanghao(val);
                } else if ("mima".equals(name)) {
                    s.setMima(val);
                } else if ("num".equals(name)) {
                    s.setNum(new Integer(val));
                }
            }
            System.out.println(s);
        }
    }
}

 1. InputStream resource = MyTest2.class.getClassLoader().getResourceAsStream("steam.xml");

是获取文件流;

steam.xml是上方xml文件的文件名

2.SAXReader reader = new SAXReader();是创建解析对象;

3.Document read = reader.read(resource);使用解析对象的方法将文件流变成文档对象

4.Element element = read.getRootElement();获取根标签<Steam></Steam>

5.List<Element> elements = element.elements();获取跟标签的子标签<Steam id="1"></Steam>;

<Steam id="2"></Steam>

以下是代码产生的效果:

是不是很有意思!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习数仓工具 dbt

DBT 是一个有趣的工具&#xff0c;它通过一种结构化的方式定义了数仓中各种表、视图的构建和填充方式。 dbt 面相的对象是数据开发团队&#xff0c;提供了如下几个最有价值的能力&#xff1a; 支持多种数据库通过 select 来定义数据&#xff0c;无需编写 DML构建数据时&#…

色彩搭配:打造视觉吸引力与用户体验的关键

title: 色彩搭配&#xff1a;打造视觉吸引力与用户体验的关键 date: 2024/2/22 12:01:11 updated: 2024/2/22 12:01:11 tags: 网站色彩搭配视觉吸引力品牌形象用户体验设计色彩心理学配色技巧色轮互补 在当今数字化时代&#xff0c;网站已经成为了人们获取信息、进行交流和进行…

嵌入式学习之Linux入门篇——使用VMware创建Unbuntu虚拟机

目录 主机硬件要求 VMware 安装 安装Unbuntu 18.04.6 LTS 新建虚拟机 进入Unbuntu安装环节 主机硬件要求 内存最少16G 硬盘最好分出一个单独的盘&#xff0c;而且最少预留200G&#xff0c;可以使用移动固态操作系统win7/10/11 VMware 安装 版本&#xff1a;VMware Works…

Jmeter内置变量 vars 和props的使用详解

JMeter是一个功能强大的负载测试工具&#xff0c;它提供了许多有用的内置变量来支持测试过程。其中最常用的变量是 vars 和 props。 vars 变量 vars 变量是线程本地变量&#xff0c;它们只能在同一线程组内的所有线程中使用&#xff08;线程组内不同线程之间变量不共享&#…

机器学习——正规方程

正规方程的基本介绍 之前我们使用梯度下降算法求代价函数J(θ)的最小值&#xff0c;而梯度下降算法是通过一步步不断地迭代来收敛到全局最小值&#xff0c;如下 而正规方程则是另一种求解J(θ)最小值的方法&#xff0c;并且正规方程不需要通过迭代&#xff0c;而是一次性得到θ…

体育网站的比分、赛事数据一般从哪里获取?

像一般的体育类门户网站&#xff0c;或者是APP产品&#xff0c;换句话说&#xff0c;不是专业做数据的公司&#xff0c;基本上都是购买付费的api接口&#xff0c;越是大公司越是依靠从大的服务商处购买的。比如说whoscored这样的网站&#xff0c;以及像曼城、利物浦这样的俱乐部…

跨境电商本土化运营:深度融合本地市场,提升用户体验与市场份额

随着全球经济的不断发展&#xff0c;跨境电商在国际贸易中扮演着越来越重要的角色。然而&#xff0c;单一地面对全球市场可能并不足以满足用户的多样化需求&#xff0c;因此&#xff0c;跨境电商需要与本地市场深度融合&#xff0c;实现本土化运营。本文Nox聚星将和大家探讨跨境…

软件兼容性测试要考虑什么?

1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本&#xff0c;向后兼容是指可以使用软件的以前版本。并非所有的软件都要求向前兼容和向后兼容&#xff0c;这是软件设计者需要决定的产品特性。 2、不同版本之间的兼容。不同版本之间的兼容指要实现测试平台和应用软…

【elasticsearch实战】知识库文件系统检索工具FSCrawler

需求背景 最近有一个需求需要建设一个知识库文档检索系统&#xff0c;这些知识库物料附件的文档居多&#xff0c;有较多文档格式如&#xff1a;PDF, Open Office, MS Office等&#xff0c;需要将这些格式的文件转化成文本格式&#xff0c;写入elasticsearch 的全文检索索引&am…

解决app中以webview的方式嵌入h5网页,h5网页加载不出来

问题描述&#xff1a;我的h5网页在web端和手机浏览器都能正常渲染展示&#xff0c;但是嵌入到客户的webview中&#xff0c;渲染加载不出来&#xff0c;仔细检查代码之后并没有任何代码错误和后台报错。抓耳挠腮查找两天之后发现&#xff0c;原因为整个h5网页的最外层高度设置成…

六、回归与聚类算法 - 线性回归

目录 1、线性回归的原理 1.1 应用场景 1.2 什么是线性回归 1.2.1 定义 1.2.2 线性回归的特征与目标的关系分析 2、线性回归的损失和优化原理 2.1 损失函数 2.2 优化算法 2.2.1 正规方程 2.2.2 梯度下降 3、线性回归API 4、回归性能评估 5、波士顿房价预测 5.1 流…

打造纯Lua组件化开发模式:Unity xLua框架详解

在传统的Unity开发中&#xff0c;通常会使用C#来编写游戏逻辑和组件。但是&#xff0c;随着Lua在游戏开发中的应用越来越广泛&#xff0c;我们可以将游戏逻辑和组件完全用Lua来实现&#xff0c;实现纯Lua的组件化开发模式。这样做的好处是可以更加灵活地修改游戏逻辑&#xff0…

Python: argparse基本用法

Python: argparse基本用法 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;【Matplotlib之旅&#xff1a;零基础精通数据可视化】 &#x1f4a1; 创作高质量博文&#xff0c;分享更多关于深度学习、PyTorch、Python领域的优质内容&#xff0…

小程序--引入vant组件库

一、npm初始化 在微信开发者工具中打开终端&#xff0c;输入npm init&#xff0c;对npm进行初始化 二、安装vant组件库 npm install vant/weapp 三、修改app.json 修改 app.json&#xff0c;移除全局配置 "style": "v2"&#xff0c;否则 Vant 组件的样式…

Vectorlabs橙黄网胞盘菌凝集素(Aleuria Aurantia Lectin)

与荆豆凝集素和莲藕凝集素偏好&#xff08;α-1,2&#xff09;连接的岩藻糖残基不同&#xff0c;AAL由2个相同36kDa大小的亚基组成的二聚体&#xff0c;与fucose linked (α -1,6) to N-acetylglucosamine或fucose linked (α -1,3) to N-acetyllactosamine相关结构结合。AAL也…

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第十二章 C++经验谈(二)

12.8.4 用partition()实现“重排数组&#xff0c;让奇数位于偶数前面” std::partition()的作用是把符合条件的元素放到区间首部&#xff0c;不符合条件的元素放到区间后部&#xff0c;我们只需把“符合条件”定义为“元素是奇数”就能解决这道题。复杂度是O(N)时间和O(1)空间…

Web 3超入门—踏上Web 3.0的征程:超入门探索指南【文末送书-21】

文章目录 Web 3超入门—踏上Web 3.0的征程&#xff1a;超入门探索指南1. 什么是Web 3.0&#xff1f;2. 区块链技术3. 去中心化应用&#xff08;DApps&#xff09;4. 数字身份和隐私5. 通证经济6. Web 3.0的应用领域Web 3超入门【文末送书-21】 Web 3超入门—踏上Web 3.0的征程&…

TSINGSEE青犀AI智能分析网关V4初始配置与算法相关配置介绍

TSINGSEE青犀AI智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入&#xff0c;可兼容市面上常见…

OM6650AM 一款低功耗车规级蓝牙5.1SoC芯片

OM6650AM是一款超低功耗、同时支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片&#xff0c;采用4.0 mm x 4.0 mm QFN32封装&#xff0c;具有丰富的资源&#xff0c;极低的功耗&#xff0c;优异的射频性能&#xff0c;可广泛应用于车载数字钥匙模组、胎压检测、PKE钥匙…

机器视觉技术的演进:YOLO系列与Halcon的深度对比

YOLO系列的发展历程 YOLO&#xff0c;作为一种流行的实时目标检测算法&#xff0c;自2015年首次被提出以来&#xff0c;经历了多个版本的迭代。最初的YOLOv1因其独特的单次检测框架而备受关注&#xff0c;它将图像分割成网格&#xff0c;并对每个网格预测多个边界框和类别概率&…