在这里,简单的介绍一下XML,以及如何来生成一个XML文档和怎样解析一个XML文档。
1.什么是XML
- xml指可扩展标记语言(EXtensible Markup Language)
- xml是以一种标记语言,很类似HTML
- xml的设计宗旨是传输数据,而不是显示数据
- xml标签没有被预定义,需要自行定义标签
- xml被设计为具有自我描述性
- xml是W3C的推荐标准
2.XML与HTML的差异
- xml不是html的替代
- xml和html为不同的目的而设计
- xml被设计为传输和存储数据,其焦点是数据的内容
- html被设计用来显示数据,其焦点是数据的外观
- html旨在显示信息,而xml旨在传输信息
XML可以跨语言传输数据
3.一个规范的XML文档
<?xml version="1.0" encoding="UTF-8" ?> <班级> <学生 id="001"> <姓名>张三</姓名> <成绩> <Math>90</Math> <English>80</English> </成绩> </学生> <!-- 下面是第二个学生的描述 --> <学生 id="002"> <姓名>Tom</姓名> <成绩> <Math>95</Math> <English>78</English> </成绩> </学生> </班级>
①.XML文档的格式
- 第一行是xml文档的头文件,每个xml文档都有这样一个头文件
- encoding值是xml的编码格式
- <班级> 为根元素,其他所有元素都必须包含在根元素内部
- <学生>为班级的子元素,‘学号’为学生的属性
- :是xml文档中的注释,与html相同
- 标签必须成对出现
②.XML文档的语法规则
一个好的语言都是有语法规则的,这样,他才能很好的普及。XML语法具有以下的几条规则:
- 所有xml元素都必须有关闭标签
- xml标签对大小写敏感
- xml必须正确地嵌套
- xml必须有根元素
- xml的属性值必须加引号
- 元素名称不能以数字和"_"(下划线)开头、不能以xml开头、不能包含空格与冒号
- html中的转义字符在xml中也可以使用,如果文本中需要转义的字符太多,还可以使用"<![CDATA[需要转义的文本]]>"
4.生成XML文档
XML作为数据的传输语言,它能够很好的显示数据信息,那么怎样把一张表或者一个实例对象转换为xml呢?
以User对象为例,使用JAXB生成User对象的xml:
首先,你得有一个User对象:
package com.cn.entity; import java.util.List; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement //注解,要想生成xml必须得加哦~ ~ 切记 不要导错了包!!~~ public class User { private String name; private int id; private String password; private String email; private List<Message> messageList; //set和get方法 ... ... } ------------------------------------------------- package com.cn.entity; public class Message { private int id; private String content; //message的内容 //set和get方法 ... ... }
然后,调用JAXB的一些方法生成xml,在此之前,别忘了导入JAXB的一些jar包:
import java.util.ArrayList; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import com.cn.entity.Message; import com.cn.entity.User; public class Test { public static void main(String[] args) throws Exception { User user = new User(); user.setName("tom"); user.setPassword("123"); Message m1 = new Message(); m1.setId(1); m1.setContent("tom生成了xml"); Message m2 = new Message(); m2.setId(2); m2.setContent("jack解析了xml"); List<Message> list = new ArrayList<Message>(); list.add(m1); list.add(m2); user.setMessageList(list); JAXBContext ctx = JAXBContext.newInstance(User.class); Marshaller marshaller = ctx.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING,"GBK"); //设置xml的编码 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //让生成的xml按规范的格式显示 marshaller.marshal(user, System.out); //让xml输出在控制台 }
让我们来看看结果吧:
<?xml version="1.0" encoding="GBK" standalone="yes"?> <user> <id>0</id> <messageList> <content>tom生成了xml</content> <id>1</id> </messageList> <messageList> <content>jack解析了xml</content> <id>2</id> </messageList> <name>tom</name> <password>123</password> </user>
是不是总感觉哪里不对劲,如果把id作为属性会不会感觉好点~~~
其实,这个也很简单,就是写几行注解的事:
- 把id作为其父节点的属性值,在属性的set方法上添加注解: @XmlAttribute
- 给两个messageList添加一个父节点,在messageList的set方法上添加:@XmlElementWrapper(name="Messages") name 的值是给该父节点起了名称叫“Messages”
- 忽略属性,就是在属性的set方法上添加:@XmlTransient ,在生成的xml文档中就不会显示该属性
- 修改标签的名称,在其对应的属性的set方法上添加:@XmlElement(name="修改的标签名称"),name的值就是标签修改后的名称
@XmlAttribute //将id其父标签的属性 public void setId(int id) { this.id = id; } ... ... @XmlElement(name="msg") //将默认的“content”标签改为“msg” public void setContent(String content) { this.content = content; } ... ... @XmlElementWrapper(name="Messages") //给messageList添加父标签,并且命名为“Messages” public void setMessageList(List<Message> messageList) { this.messageList = messageList; }
相关推荐
这个“自动生成XML文件列表工具”就是针对特定需求设计的,它能够快速地将指定目录下的所有文件信息整理并生成一个XML文件。这样的工具在软件更新、版本控制、数据备份等场景中十分有用,因为它提供了标准格式化的...
c#根据datatable为每行记录自动生成一个xml文件
在构建完DOM对象模型之后,为了将XML文档写入文件或发送到客户端,需要创建一个流工厂和输出流。示例代码中通过`l_streamfactory = l_ixml->create_stream_factory()`创建了一个流工厂,并通过`l_ostream = l_...
动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件...
这将根据映射信息生成一个XML文件,其中包含工作表中的数据。 5. **处理XML文件**:生成的XML文件可以用任何XML编辑器或编程语言(如Python、Java、C#等)进一步处理。例如,可以使用XPath查询语言来提取特定数据,...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
3. **自动生成代码**:在提供的压缩包`Xml2Class`中,很可能包含了一个这样的工具,能够接受XML文件作为输入,然后生成对应的C#类代码。这样的工具通常会根据XML节点的层次结构生成嵌套的类,并考虑命名空间、属性...
总的来说,根据XML模版自动生成XML文件是一个涉及数据处理、XML技术及文件操作的综合任务。理解这些步骤和相关工具,对于在IT领域中处理数据交换和文件生成至关重要。通过熟练掌握这些技能,开发者能够更有效地实现...
在"ParseProjectMpp"这个示例中,很可能包含了一个完整的Java程序,演示了如何使用MPXJ库解析MS Project文件并生成XML文件。你可以通过查看和运行这个程序,学习如何实际操作这些步骤。 总的来说,MPXJ库为Java...
在实际应用中,我们可能先使用`XMLFileUtil.readFileToString()`方法读取XML文件为字符串,然后通过`XMLFormatUtil.formatXML()`对这个字符串进行格式化,最后再写回为一个新的XML文件。 总结起来,本文主要讨论了...
以下是一个简单的例子,展示如何创建一个XML文档并添加Excel数据: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; ...
XML文件由一系列元素组成,每个元素都有一个开始标签(如`<tag>`)和一个结束标签(如`</tag>`)。元素可以包含文本内容、属性,也可以嵌套其他元素。例如,一个简单的XML文件可能如下所示: ```xml <name>Item...
java一次性读取多个excel文件的内容,每个excel包含多个sheet,生成一个自定义的xml文件
在生成XML文档时,遵循XML Schema有以下步骤: 1. **创建XML Schema**:编写XSD文件,定义所需的元素、属性及其关系。例如: ```xml <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ``...
"mybatis xml文件自动生成"是开发过程中的一个重要环节,它可以帮助开发者提高效率,减少手动编写XML映射文件和对应的POJO(Plain Old Java Object)类的工作量。 MyBatis的Mapper文件是其核心组成部分之一,它包含...
MySQL数据库自动生成XML文件是一项实用的技术,它可以帮助开发者快速地将数据库中的数据转换为XML格式,便于数据交换、存储或进一步处理。这项技术通常结合代码生成工具,如MyBatis的Generator,能够自动化生成DAO...
在Java编程中,生成XML文档是一项常见的任务,特别是在构建配置文件、数据交换或者保存结构化信息时。XML(eXtensible Markup Language)是一种标记语言,它的结构清晰、可读性强,非常适合用来存储和传输数据。...
"XML生成器"是一个工具,它能够帮助用户快速地生成自定义的XML文件,这个过程通常包括了对文件夹中的文件进行遍历,并根据用户的需求将文件信息结构化为XML格式。 首先,我们来了解XML的基本结构。XML文件由一系列...
在C#中,生成XML文档的第一步是创建一个`XmlDocument`对象。这个对象充当了整个XML文档的容器,所有的节点(包括元素、属性、注释等)都将被添加到这个容器中。例如,在给定的代码片段中,首先实例化了一个`Xml...
2. **准备XML文档**:为了生成XSD文件,您需要有一个已经创建好的XML文档作为输入。这个文档应包含足够的数据结构信息以便于XSD文件能准确地描述这些结构。 #### 三、使用xsd.exe生成XSD 1. **命令行操作**:打开...