XML是一种可扩展标记语言,常用来存储和传输结构化数据。理解XML中的元素和属性,以及掌握读取XML的方法,是处理配置文件、接口报文等场景的基础。元素由起始标签和结束标签包裹,属性则写在起始标签内部用来补充信息。

XML元素与属性
XML元素是指从开始标签到结束标签之间的全部内容,可以包含文本、其他元素或为空。属性提供元素的额外特征,以名称等于值的形式写在开始标签中。
基础示例
下面是一段简单的XML,展示元素与属性的关系:
<user id="1001"> <name>张三</name> <age>28</age> </user>
其中<user>是元素,id是它的属性;<name>和<age>是嵌套的子元素。
如何读取XML数据
实际开发中常用DOM方式将XML转为树结构后读取,也可以用Python标准库快速解析。
使用Python解析
通过xml.etree.ElementTree可加载并遍历XML:
import xml.etree.ElementTree as ET
# 解析XML字符串
xml_text = '<user id="1001"><name>张三</name><age>28</age></user>'
root = ET.fromstring(xml_text)
# 读取属性与子元素
user_id = root.get('id')
name = root.find('name').text
age = root.find('age').text
print('ID:', user_id)
print('姓名:', name)
print('年龄:', age)
使用Java DOM解析
Java中可通过DocumentBuilder读取XML文件:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
public class ReadXml {
public static void main(String[] args) throws Exception {
// 创建解析器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析XML文件
Document doc = builder.parse(new File("test.xml"));
doc.getDocumentElement().normalize();
// 获取user节点属性
NodeList list = doc.getElementsByTagName("user");
Element user = (Element) list.item(0);
String id = user.getAttribute("id");
System.out.println("用户ID: " + id);
}
}
元素与属性的选用建议
一般数据主体用元素表达,元数据或固定标识用属性表达。避免过度使用属性导致结构不清。合理设计XML结构,配合上述读取方式,就能稳定处理各类XML数据。