欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

【XML】XML语法格式提要

发布时间:2025/3/15 asp.net 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【XML】XML语法格式提要 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

XML语法规则纲要

  • XML文档必须有且只有一个根元素
  • XML元素都必须有一个关闭标签
  • XML标签对大小写敏感
  • XML元素必须被正确的嵌套
  • XML属性值必须加引号

XML文档必须有且只有一个根元素

对于下面的XML文档

<?xml version="1.0" encoding="UTF-8" ?> <SALES><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER> </SALES>

删去根元素<SALES>:

<?xml version="1.0" encoding="UTF-8" ?> <ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM> </ORDER> <ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM> </ORDER> <ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM> </ORDER>

就会解析错误:

错因在第20行的<ORDER>上,也就是说,新的XML文档在被浏览器解析的时候默认了<ORDER>是根元素,而第一次<\ORDER>出现的时候,意味着整个XML文档的结束,后面仍有<ORDER>就不合法,XML文档树可不是森林,必须单根。

XML元素都必须有一个关闭标签

这个关闭标签啊,在HTML中经常有不写关闭标签的情况而并不会解析错误。
即使是HTML5,也被迫向某些陋习妥协了,比如<p>等等

但是XML语法要求严格,标签必须被关闭。

如果我们删去上面代码最后一行的<\SALES>,就会解析错误:

当然了,我们这时以根元素举的例子,错误原因来自于文档解析到结尾仍没出现根元素<SALES>的关闭标签<\SALES>,这是不被允许的。

事实上,任何XML元素都是如此。

XML标签对大小写敏感

一般的编程语言都对大小写敏感,像 Visual Basic 系列这种不管大小写的真是奇葩……

XML虽不是编程语言,但也对大小写敏感。

怎么说敏感呢?
就是说<SALES>与<sales>是完全不同的标签。

我们将上面代码的最后一行的<\SALES>换成<\sales>:

显示解析错误:

再换成<HHH>,看看解析情况:

都是“非配对的标签”,其实人家都没管你是不是大小写问题,直接就是认为反正你不是<\SALES>就是不对。

所以要注意大小写啊!!!

XML元素必须被正确的嵌套

这个问题是说,比如我们<SALES>嵌套了<ORDER>,收尾顺序就得是先<\ORDER>后<\SALES>,有栈的意味。

如果胆敢出现FIFO队列式的先<\SALES>后<\ORDER>,就算嵌套错误,导致解析错误。

XML属性值必须加引号

有关属性的问题我在这篇文章中已经讲过很详细了,就不再细说。

必须注意的一点是:XML属性值必须加引号。

XML属性其实换成JSON显得更直白,就和Python的字典一个样子,key:value式的KV对,只不过这个value不管是什么值,都必须加引号,就比如下面的例子:

<PRODUCT id="202003010001">

不能写成下面的样子:

<PRODUCT id=202003010001>

XML不管属性值是不是数值,反正必须加引号!!!

总结

以上是生活随笔为你收集整理的【XML】XML语法格式提要的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。