【XML基础】XML语言简介及简单例子_xml例子-程序员宅基地

技术标签: xml  html  # 筑基05:语言基础  

1 XML语言简介

  1. XML语言,是指可扩展标记语言(EXtensible Markup Language)。
  2. 学习基础。在此之前,我们了解了JTML、CSS、JS三种语言的分工,如下:
    1. HTML:定义网页的内容;
    2. CSS:规定网页的布局;
    3. JavaScript:对网页行为进行编程。
  3. 当增加了XML语言后,分担了一部分HTML的工作内容。
    1. XML:用来传输和存储数据;
    2. HTML:用来显示数据。
    3. CSS:规定网页的布局;
    4. JavaScript:对网页行为进行编程。

2 XML语言的意义

  1. 主要意义在于简化数据的存储和共享,详细表现如下:
  2. XML 把数据从 HTML 分离
    1. 如果你需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。通过 XML,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。
    2. 通过使用几行 JavaScript,你就可以读取一个外部 XML 文件,然后更新 HTML 中的数据内容。
  3. XML 简化数据共享
    在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。
  4. XML 简化数据传输
    通过 XML,可以在不兼容的系统之间轻松地交换数据。对开发人员来说,其中一项最费时的挑战一直是在因特网上的不兼容系统之间交换数据。由于可以通过各种不兼容的应用程序来读取数据,以 XML 交换数据降低了这种复杂性。
  5. XML 简化平台的变更
    升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。
  6. XML 使您的数据更有用
    由于 XML 独立于硬件、软件以及应用程序,XML 使您的数据更可用,也更有用。不同的应用程序都能够访问您的数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进行访问。通过 XML,您的数据可供各种阅读设备使用(手持的计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。

3 XML树结构

  1. XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
    1. 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
    2. 所有元素均可拥有文本内容和属性(类似 HTML 中)。
  2. 第1行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
  3. 第2行描述文档的根元素(像在说:“本文档是一个便签”)。
  4. 第3~7 行描述根的 4 个子元素(to, from, heading 以及 body)。
  5. 第8行定义根元素的结尾。
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

4 语法规则

4.1 所有 XML 元素都须有关闭标签

在 HTML,经常会看到没有关闭标签的元素,但是在 XML 中,省略关闭标签是非法的,所有元素都必须有关闭标签。

4.2 XML 标签对大小写敏感

  1. XML 元素使用 XML 标签进行定义。
  2. XML 标签对大小写敏感。
  3. 必须使用相同的大小写来编写打开标签和关闭标签。

4.3 XML 的属性值须加引号

与 HTML 类似,XML 也可拥有属性(名称/值的对)。在 XML 中,XML 的属性值须加引号。如以下代码:

<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note> 

4.4 实体引用

  1. 在 XML 中,一些字符拥有特殊的意义。
  2. 如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。为了避免这个错误,请用实体引用来代替 “<” 字符:
<message>if salary &lt; 1000 then</message> 
  1. 类似的5个实体引用如下。在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
实体引用 符号 名称
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; 单引号
&quot; " 引号

4.5 XML 中的注释

在 XML 中编写注释的语法与 HTML 的语法很相似:

<!-- This is a comment --> 

4.6 XML 空格会被保留

  1. HTML 会把多个连续的空格字符裁减(合并)为一个;
  2. 在 XML 中,文档中的空格不会被删节。

4 总结

  1. 了解XML如何与HTML、CSS、JavaScript分工合作;
  2. 了解XML树结构及元素、属性;
  3. 了解XML语法注意事项。

参考文献

  1. XML 教程》W3school对XML的文本教程。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Fighting_hawk/article/details/123638147

智能推荐

mysql实现oracle数据库的rowNum方法_orcle中的rownum在mysql中-程序员宅基地

文章浏览阅读958次。select b.* from (SELECT @rownum:=@rownum+1 as rownum,a.* FROM (SELECT @rownum:=0) r,java_test_pro as a ) b where b.rownum=1;实现方法SELECT @rownum:=@rownum+1 as rownum,a.* FROM (SELECT @rownum:=0) r,..._orcle中的rownum在mysql中

.NET反编译工具:de4dot-程序员宅基地

文章浏览阅读242次。de4dot是一款C#编写的基于GPLv3协议的一个开源的.net反混淆脱壳工具,是目前.net下非常不错的一款反编译工具。支持如下混淆器:Agile.NET (aka CliSecure)Babel.NETCodeFortCodeVeilCodeWallCryptoObfuscatorDeepSea..._de4not如何反编译

Qt 出现 "undefined reference to vtable for" 的解决方案。_moc_predefs.h-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏3次。今天我在用Qt5.8写一个程序时,出现了报错 ”undefined reference to vtable“:具体原因如下:我自定义了一个类继承于QWidget,然后去使用信号与槽机制,在该类的头文件中加入了 Q_OBJECT,接着在运行该程序的过程中报出上述标题的错误。这是由于预编译器在打开宏Q_OBJECT时,找不到moc_predefs.h的内容,所以报错了。所以我们需要在该..._moc_predefs.h

Python+pushpuls+云服务器 自定义微信推送天气预报_pushplus天气推送-程序员宅基地

文章浏览阅读4.3k次,点赞4次,收藏19次。小项目目标通过Python爬取某天气预报网站(含有小时的)天气预报挂在云服务器上,定时周期运行Python程序通过pushplus微信推送天气预报(感觉意义在于:手机不常看;在电脑端忙工作时,能在恰当的时候,推送天气预报提醒,便于出行安排)Python+pushpuls+云服务器 自定义微信推送天气预报一、Python获取天气预报信息1、找寻合适的天气预报网站2、Python程序获取天气预报信息二、pushplus实现微信推送1、pushplus(推送加)2、Python进行内容推送三、部署云_pushplus天气推送

浅谈反射机制_反射 private static-程序员宅基地

文章浏览阅读249次,点赞2次,收藏2次。一、反射的概念反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。这句话就是JDK8明确定义的反射机制的概念其实真的不好理解 ,我一直理解的反射是:反射就是在程序运行过程中,根据字节码文件获得类的信息,根据字节码文件创建对象、访问字段、调用方法的技术。我觉得这样比较好理解。那么反射依赖于class对象,那么我们怎么创建class对象呢?简单说就是..._反射 private static

随便推点

用Python在多个工作簿中批量删除工作表二_批量删除sheet2页-程序员宅基地

文章浏览阅读1.7k次。在多个工作簿中批量删除工作表二通过使用Python的xlwings模块,对Excel的工作簿和工作表批量删除操作import os # 导入os模块import xlwings as xw # 导入xlwings模块file_path = 'E:\\pythonExample\\01' # 定义工作簿所在的文件夹路径file_list = os.listdir(file_path) # 列出指定路径下的文件及文件夹名称sheet_name = '产品销售区域' # 定义工作簿名中新的_批量删除sheet2页

蓝桥杯——2021第十二届C/C++真题[省赛][B组]_第十二届蓝桥杯c++b组-程序员宅基地

文章浏览阅读3.7w次,点赞175次,收藏723次。目录卡片直线货物摆放路径空间砝码称重时间显示杨辉三角数双向排序括号序列卡片思路:这道题咋一看给人一种挺难的感觉,其实很简单,就是一个数的每位遍历。#include<iostream>using namespace std;int main(){ int a[10] = { 0 }; int t = 0; for (int i = 0; i <= 9; i++) { a[i] = 2021; } fo..._第十二届蓝桥杯c++b组

Orcad Capture导出带网络标识的pdf文档_orcad capture导出pdf-程序员宅基地

文章浏览阅读2.4k次。1、首先需要安装Adobe Acrobat阅读器;2、打开Orcad Capture原理图,首先切换到项目管理页面,选中需要导出pdf文档的dsn文件;3、在弹出的Tcl/Tk Applications Dashboard页面,选中[Design Utilities]中的Pdf Export,再点击右上角的Launch按钮,4、在PDF Export页面,指定导出pdf文件的路径,文件名,一定要注意图中3选项Postscript Driver的名称,对应的是所安装的虚拟打印机的名称,请_orcad capture导出pdf

[EDI 案例] 快速对接德尔福/Delphi EDI_edi双报文服务-程序员宅基地

文章浏览阅读413次。EDI对接Delphi本次知行软件为汽车电缆行业某客户提供EDI的技术服务,是同时和三位国外贸易合作伙伴进行EDI对接,在双方的共同努力下,最终成功对接了Nexans, KSD, Delphi三位贸易合作伙伴。扩展阅读: 汽车电缆行业EDI整体解决方案在对接三位贸易合作伙伴时,EDI需求基本都一致:需要接收来自贸易合作伙伴的需求预测,按照需求预测完成生产后,向贸易合作伙伴交货,交货完成后,发..._edi双报文服务

ios WKWebView Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified_could not build module 'webkit-程序员宅基地

文章浏览阅读3.3w次。最近在使用WKwebview(UIWebView 占用内存太大,而且还有内存泄漏问题)加载一个服务端的网页时候遇到这个问题,首先你要看一下你的Htttps 和Http 设置如下 发现没用,网上找了好多资料,大部分说先 [self.webView loadRequest:request]; 然后在addSubView 我发现也没用,后来又设置NSHTTPCookie 如下NSMutabl..._could not build module 'webkit

OCR系列:主流深度学习OCR文字识别方法对比_ocr深度识别比较-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏37次。● 1 主流深度学习OCR文字识别方法对比(重点试): 文章地址:https://blog.csdn.net/lovebyz/article/details/84959818 1.Tesseract(LSTM) +Densenet (无代码) 2. CTPN+CRNN (中文 、重点试) 代码地址:https://git..._ocr深度识别比较

推荐文章

热门文章

相关标签