XML 入门学习笔记

XML 入门学习笔记

什么是 XML

XML 的全称是 eXtensible Markup Language(可扩展标记语言),是一种用来存储和传输结构化数据的文本格式。

XML 为什么我学习XML

目前Unity对于Json数据持久化已经有了一套较为完善的方案(JsonUtility),但通过交流得知Json存储较为复杂的类、复杂嵌套数据时不稳定,而用XML某种程度上可以解决上述一些问题。当前Unity持久化方案的主流并非XML,XML的性能也不如Json,但本着学到就是赚到、学习XML所需时间成本不大,我决定开展XML的学习。

XML 基本语法

语法规则

XML 必须有根节点(其他所有节点的父节点);
示例:

<root>
    <myclass>MyClass</myclass>
</root>

XML 头声明:不强制要求,可有可无;但建议书写;
示例:

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <myclass>MyClass</myclass>
</root>

所有 XML 元素/节点都必须是成对标签(可以参考HTML);
标签名大小写敏感(区分大小写);
标签不能交叉,错误示例:

<root>
    <a>aaaa<b>bbb</a></b>
</root>

XML 书写注意点

注释

同HTML一样,示例:

<!-- 这是一句注释 -->

特殊字符

特殊字符使用实体转义,在 XML 中需要转义的字符有: 字符 名称 实体引用 说明
< 小于号 &lt; 不能直接出现在文本或属性值中,会被解析为标签开始
> 大于号 &gt; 严格来说只有 ]]> 序列中必须转义,但建议始终转义
& 和号 &amp; 必须转义,否则会被当作实体引用的开始
" 双引号 &quot; 在由双引号包裹的属性值中必须转义
' 单引号 &apos; 在由单引号包裹的属性值中必须转义

元素属性

属性用于描述标签自身的额外信息,一个标签可以有多个属性,属性的值必须使用引号引起来;
元素属性命名规则同变量名命名规则。(在解析 XML 数据时会带来额外解析代码)
示例:

<root>
    <person>
        <name>Russel</name>
        <age>28</age>
    </person>

    <person>
        <name age="28">Russel</name> <!-- 这里就是添加了age为28的属性-->
    </person>
</root>

CDATA

处于CDATA区域中的内容不会被解析。
注意:特殊字符较少时,使用实体替换,较多时使用CDATA。
语法示例:

<root>
    <msg><![CDATA][这其中的内容不会被解析]></msg>
</root>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇