如果你只是一个单纯的玩家,这篇文章对你来说也是有益而无害,有时间的话就瞄一眼吧?
如果你是一个Mod作者或你有编程功底,这些基础的知识你比我更了解,没有必要看接下来的内容;
如果你是想要进入Mod作者行列但没有相关知识,这篇文章或只能给你提供最低限度的XML相关知识,你可能需要更多的学习;
PS:本帖内容以个人知识为基础,可能存在不严谨和错误;部分资料来自菜鸟教程 。
XML 语法规则
XML有着简单、清晰的语法规则。这些规则很容易学习,也很容易使用。
1:XML 标签
XML 代码由标签和内容组成;
标签就像括号”()”一样包含内容;
标签像括号一样需要成对使用,完整的标签必须由开始标签和结束标签组成;
开始标签为<xxx>结束标签为</xxx>,其中xxx为标签名,可替换为其他字符;
<开始标签></结束标签><!-- 这里为了易于理解使用了中文标签名,实际的编程中非常不建议使用中文标签名 -->
1.5:XML 标签对大小写敏感
XML 标签对大小写敏感。标签 <title> 与标签 <Title> 是不同的;
必须使用相同的大小写来编写开始标签和结束标签:
<A>这是错误的</a> <a>这是正确的</a>
2:XML 嵌套
像括号可以包含括号一样,XML 标签也可以包含另一对XML 标签,这种层层包含的关系即为嵌套;
同样想括号的嵌套规则一样,标签包含另一对标签时被包含的标签必须完全处于上一级标签内,例如:
<a><b>这是错误的</a></b> <a><b>这是正确的</b></a>
也就是说,如果b标签在a标签内开始,那么就必须在a标签内结束。
3:XML 元素
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
一个元素可以包含:
-其他元素-
-文本-
-属性-
-或混合以上多个元素…
3.5:根元素
XML 必须包含根元素,它是所有其他元素的父元素,比如以下实例中 jier 就是根元素:
<jier> <a>...</a> <b><c>...</c></b> </jier>
也就是说,XML 的所有元素必须被统一包含在一对标签内,举个例子:
<a>...</a> <b><c>...</c></b> <!-- 如果整个XML文档的结构像这样就是错误的 -->
<a>...</a> <b> <c> <d>...</d> </c> </b> <!-- 就算多套一层也还是错的 -->
4:XML 属性值
XML 元素可以拥有属性(键/值 对);
XML 的属性值必须加引号;
例如:
<a date=5/7/2020>这是错误的</a> <a date="5/7/2020">这是正确的</a><!-- 其中"date"即为键(属性名),"5/7/2020"即为值 -->
5:XML 声明
XML 声明是可选部分,如果存在需要放在文档的第一行,通常XML 声明如下:
<?xml version="1.0" encoding="utf-8"?><!-- 其中"1.0"为XML 的版本,"utf-8"为编码格式 -->
ps:XML 声明没有结束标签,因为XML 声明并不是文档本身的一部分;
6:XML 实体引用
在 XML 中,一些字符拥有特殊的意义;
如果把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始;
例如:
<a>3<5</a><!-- "<5" 会被当做是另一个开始标签的一部分 -->
如果在编写过程中不得不用到这类特殊字符,可以用实体引用来代替 “<” 字符:
<a>3<5</a><!-- 像这样编写,实际显示出的效果即为"3<5" -->
在 XML 中,有 5 个预定义的实体引用:
< | < | less than |
> | > | greater than |
& | & | ampersand |
' | ' | apostrophe |
" | “ | quotation mark |
ps:实际上在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但用实体引用来代替它是一个好习惯。
6.5:在 XML 中,空格会被保留
在一些其他编程语言(例如HTML)中会把多个连续的空格字符裁减(合并)为一个:
HTML: |
Hello Tove |
输出结果: | Hello Tove |
而XML 则会保留所有空格字符:
XML: |
Hello Tove |
输出结果: |
Hello Tove |
7:XML 注释
在上文中,我多次使用<!– –>来包含说明文字,这就是XML 注释;
<!-- 这是一句没什么乱用的注释 -->
ps:作为注释语句,XML 注释没有结束标签;
本教程到此为止,希望感兴趣的小伙伴多去了解XML语言以及其他七日杀所用的技术,多尝试自己做Mod;
觉得本帖好的话请打赏(没错,我不要脸了 )
希望大家玩的开心,创作开心!