很多人觉得XML文件是老古董,其实它在编程里还挺常见。比如你用的App更新配置、网站后台的数据交换,甚至游戏里的人物属性设置,背后都有XML的身影。
XML长什么样?
它就是一种用标签组织数据的文本格式,看起来有点像HTML,但更注重内容结构。比如下面这个例子:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>张三</name>
<age>25</age>
<city>杭州</city>
</user>
这种格式清晰,人看着不费劲,程序也容易读取。
编程中怎么读取XML?
拿Python举个例子,用内置的xml.etree.ElementTree就能轻松处理。比如你想从上面那个XML里取出用户名:
import xml.etree.ElementTree as ET
data = '''<user>
<name>张三</name>
<age>25</age>
<city>杭州</city>
</user>'''
root = ET.fromstring(data)
print(root.find('name').text) # 输出:张三
几行代码就把数据抓出来了,简单直接。
实际开发中的常见用途
Android开发里,界面布局文件就是XML写的。你看到的按钮、输入框位置,都是通过XML定义的。比如这段代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:text="欢迎登录"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:text="点击进入"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
这就是一个简单的垂直布局,系统会根据这个结构渲染出对应的界面。
再比如一些软件的配置文件,像数据库连接信息、日志级别设置,也会放在XML里。改配置不用动代码,重启一下程序就生效,运维起来方便多了。
和其他格式比有什么优势?
虽然现在JSON更流行,但XML在某些场景还是占优势。比如需要定义复杂结构或带命名空间的时候,XML更灵活。另外一些老系统、企业级应用还在大量使用,做对接时绕不开它。
而且XML支持注释、可以自定义标签,团队协作时更容易理解字段含义。比如<customer-name>比单纯的"name"更明确。
小工具推荐
编辑XML时,用Notepad++或者VS Code装个XML插件就很顺手。它们能自动缩进、高亮标签,还能检查格式对不对。要是处理大文件,可以用XMLSpy,功能强,查错效率高。
平时调试接口如果收到XML数据,浏览器直接打开就能看结构,比二进制格式友好太多了。