XML 文件不像 HTML 那样有固定标签(比如 <div>、<p>),它的标签全靠你自己来定——这也是它灵活又容易出错的地方。说白了,XML 不是给你展示网页用的,而是专门用来描述和传输数据的,比如配置文件、接口返回的数据、RSS 订阅源等等。
标签得自己起名,但得守规矩
你可以在 XML 里随便写 <book>、<price>、<author>,甚至 <小明的猫>,只要符合几条基本规则:
- 标签名不能以数字或标点开头,比如 <1book> 或 <@name> 是非法的;
- 不能包含空格,<first name> 不行,得写成 <firstName> 或 <first_name>;
- 大小写敏感,<Book> 和 <book> 是两个不同标签;
- 必须闭合,要么自闭合 <img/>,要么配对 <title>《三体》</title>。
一个最简单的例子
假设你要记录一本书的信息,可以这样写:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<title>三体</title>
<author>刘慈欣</author>
<year>2008</year>
<price currency="CNY">38.00</price>
</book>这里 <book> 是根标签,下面嵌套了 <title>、<author> 等自定义标签,还给 <price> 加了属性 currency,说明这是人民币价格——属性也是你自由定义的,只要写在开始标签里就行。
注意:别踩这些常见坑
新手常把 XML 当成 HTML 来写,结果报错。比如:
- 忘了写 XML 声明 <?xml version="1.0"?>(虽然不是强制,但强烈建议加);
- 标签没闭合,写了 <name>张三,却漏了 </name>;
- 用了中文标点或全角空格,比如把 </title> 写成 </title >(后面多了个全角空格);
- 根元素不唯一,XML 文件里只能有一个顶层标签,不能并列写两个 <book> 和 <movie>。
再看一个带属性和嵌套的实战片段
比如管理一个用户列表,每个用户有昵称、邮箱、注册时间,还可能有多个兴趣标签:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1001" status="active">
<nickname>老王</nickname>
<email>laowang@example.com</email>
<joined>2023-05-12</joined>
<hobbies>
<hobby>爬山</hobby>
<hobby>听播客</hobby>
</hobbies>
</user>
</users>这里 <user> 标签自带 id 和 status 属性,<hobbies> 下面又嵌套了多个 <hobby>,结构清晰,机器好读,人也看得懂。
记住一点:XML 标签的意义,完全取决于你和使用它的人之间怎么约定。你写 <msg> 可以是消息,也可以是“蘑菇”,只要前后统一、文档写清楚,就成立。