XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。XML是一种用于存储和传输数据的语言,它使用标签来标记数据,以便于计算机处理和我们人来阅读。
John Doe
30
在这个例子中,person、name和age都是标签,而John Doe和30则是标签中的 数据。
所以简单来讲:XML(可扩展标记语言)是一种标记语言,它使用一系列标签来描述数据。这些标签可以用来表示不同类型的数据,如元素、属性、注释等。XML 的目标是提供一种易于阅读和理解的文本格式,用于存储和传输数据,同时能够被不同的系统和技术轻松地解析和使用。因此,XML 可以被视为一种数据格式。
1
张三
20
2
李四
21
一个 XML 文件分为如下几部分内容:
元素介绍
标签有如下几种书写形式
包含标签体:www.sohu.cn
示例:
<博客文章>
<标题>我的博客文章标题>
<作者>张三作者>
<日期>2023-07-06日期>
<内容>这是我的最新博客文章。内容>
博客文章>
<博客文章>
在所有其他元素的起始标记之前。博客文章>
在所有其他元素的结束标记之后。<博客文章>
是开始标签,博客文章>
是结束标签。也有一些标签是不含标签体的,例如 <作者>张三
中的
,这种情况下,我们通常简写为
。XML元素命名规则:
"和"
"被视为两个完全不同的元素。
在很多时候,说 标签、元素、节点是相同的意思
示例:
在这个例子中,book元素具有四个属性:id、title、author和year。每个属性的值用双引号(")分隔。
注意以下几点:
在XML中,解析器会根据一定的规则对文本进行解析,这些规则包括如何识别元素、属性和文本内容等。当解析器遇到一个文本片段时,它会尝试将其解析为XML的一部分,例如一个元素或一个属性的值。
然而,有些文本片段可能包含一些特殊字符,这些字符在XML中具有特殊的含义。例如,<和>分别用于表示元素的开始和结束,而&用于表示字符实体。如果一个文本片段中包含这些特殊字符,并且被解析器识别为XML的一部分,那么可能会导致错误或意外的结果。
为了解决这个问题,XML提供了CDATA部分。CDATA部分是一个特殊的区域,其中的文本不会被解析器解析或解释。这意味着你可以将包含特殊字符的文本放在CDATA部分中,而不用担心它们会被误解为XML标记。
在CDATA部分中,你可以放置任何文本,包括HTML、JavaScript代码、非标准字符等等。这些文本都会被当作原始文本处理,而不是XML标记。
CDATA部分的开始标记是:“”
示例:
在CDATA部分中,你可以放置任何文本,包括那些可能会被解析器误解为XML标记的内容。例如,如果你有一些特殊的字符(如 <, >, & 等)在你的XML中,你可以将它们放在CDATA部分中,以防止解析器误解为XML标记。
那为什么不用注释而是使用CDATA节?
CDATA节和注释在XML中的用途不同。注释是用来对XML文档的内容进行解释或说明的,它们不会被解析器解析或解释。而CDATA节则是用来包含那些可能会被解析器误解为XML标记的文本。
CDATA节是一个特殊的区域,其中的文本不会被解析器解析或解释。这意味着你可以将包含特殊字符的文本放在CDATA节中,而不用担心它们会被误解为XML标记。这对于包含特殊字符(如<, >, &等)的文本非常有用,因为这些字符在XML中有特殊的含义。
注释对于解释XML文档的内容非常有用,但它们不会被解析器解析。因此,如果你需要在XML文档中使用注释,你可以使用来添加注释。但是,CDATA节和注释是不同的概念,它们的用途不同。
在XML中,有一些特殊字符具有特殊的含义,例如 <、>、& 等。如果想要在XML中显示这些特殊字符的原始样式,可以使用转义字符的形式进行处理。
字符 |
含义 |
< |
表示小于号(<) |
> |
表示大于号(>) |
& |
表示和号(&) |
' |
表示单引号(') |
" |
表示双引号(") |
举例来说,如果要在XML中显示文本“5 < 10”,可以使用转义字符的形式表示小于号,即写成“5 < 10”。这样就不会被解析器误解为元素标记。
一个格式正规的 XML 文档需要遵循以下规则:
DOM文档对象模型:
DOM和SAX是早期Java中常用的两种XML解析技术。
DOM:DOM(Document Object Model)是一种XML解析技术,它将XML文档表示为一个由对象组成的树形结构,每个对象代表一个元素或属性。通过DOM API,我们可以访问和操作这些对象,从而获取XML文档中的数据。DOM解析技术提供了一种全面的XML文档表示方式,但它在内存占用和性能方面可能不太理想。
SAX:SAX(Simple API for XML)是一种基于事件驱动的XML解析技术。它通过调用回调函数来通知用户当前正在解析的元素和属性。SAX解析器逐行读取XML文档,不需要将整个文档加载到内存中,因此具有较高的性能。与DOM相比,SAX更适合处理大型XML文档,并且更适合在处理过程中进行流式操作。
但这两个技术已经过时,了解即可。
参考文档传送门 --> dom4j 1.6.1 API
DOM4J 是一个用于处理 XML 文件的库,它提供了一个简单且灵活的 API,可以高效地解析和处理 XML 文件。与 JDOM 不同的是,DOM4J 使用接口和抽象基类,这使得它更加灵活,并且可以提供更好的性能。
DOM4J 的 API 相对较复杂,但它提供了许多强大的功能,例如 XPath 查询、XML 验证、XML 序列化等。此外,DOM4J 还具有极佳的性能,可以在处理大型 XML 文件时保持高效率。
由于 DOM4J 的优秀性能和易用性,现在很多软件都在采用它来处理 XML 文件。如果你需要在 Java 应用程序中解析和处理 XML 文件,那么 DOM4J 是一个非常不错的选择。
要使用 DOM4J 进行开发,你需要下载相应的 jar 文件,并将其添加到你的 Java 项目中。这样你就可以使用 DOM4J 提供的功能来解析和处理 XML 文件了。
首先,DOM4j是一个Java库,用于处理XML文档。它提供了一种非常灵活和强大的方式来解析、操作和创建XML文档。
在DOM4j中,Document对象是XML文档的根节点,它代表了整个XML文档。因此,获取Document对象是进行XML操作的首要步骤。
当使用DOM4j来处理XML文档时,有三种主要方法可以获得Document对象:
代码示例:
SAXReader reader = new SAXReader();
File file = new File("src/input.xml");
Document document = reader.read(file);
代码示例:
String text = " ";
Document document = DocumentHelper.parseText(text);
代码示例:
Document document = DocumentHelper.createDocument();
Element root = document.addElement("members");