下面我将以如下代码来解释下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文档中起到几个重要的作用:
-
指定XML版本:
version="1.0"
表示该XML文档遵循XML 1.0规范。XML有多个版本,但这个声明指定了文档使用的是第一个广泛接受和实施的版本,即XML 1.0。 -
指定文档编码:
encoding="UTF-8"
定义了文档中字符的编码方式。UTF-8是一种非常普遍且能够表示多种语言的字符编码方式。通过这个声明,解析器知道如何正确地读取和解释文档中的字符。 -
确认文档是XML:这个声明告诉解析器该文档是一个XML文档,而不是其他类型的文档。这对于处理混合内容(例如,当服务器返回的内容可能是HTML、XML或其他类型)的客户端来说尤其重要。
-
标准化:通过包含XML声明,文档遵循了XML标准,这使得文档可以在不同的系统、平台和应用程序之间更容易地交换和解析。
-
避免混淆:对于某些应用程序和解析器,如果没有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>
以下是代码产生的效果:
是不是很有意思!