XML中如何解析XML数组_XML解析XML数组的详细操作方法

解析XML中的数组结构需识别重复标签并用解析工具提取为列表。例如Python用ElementTree的findall、Java用getElementsByTagName、JavaScript用querySelectorAll获取同名元素,遍历后转换为对象数组,实现XML“数组”到程序数据结构的映射。

XML中如何解析XML数组_XML解析XML数组的详细操作方法

解析XML中的数组结构,关键在于识别重复的元素节点,并通过编程语言提供的XML解析工具将其提取为数组或列表形式。虽然XML本身没有“数组”这一数据类型,但通过同名标签的重复出现,可以表达数组的含义。以下是几种常见语言中解析XML数组的详细操作方法。

理解XML中的“数组”结构

在XML中,所谓的“数组”通常表现为多个相同标签的子元素。例如:

<users>
  <user>
    <name>Alice</name>
    <age>25</age>
  </user>
  <user>
    <name>Bob</name>
    <age>30</age>
  </user>
</users>

这里的多个 <user> 元素构成了一个“数组”。解析的目标是将这些元素读取为程序中的列表或数组对象。

使用Python解析XML数组

Python中常用 xml.etree.ElementTree 模块来解析XML。

示例代码:

import xml.etree.ElementTree as ET

data = ”'<users>
<user><name>Alice</name><age>25</age></user>
<user><name>Bob</name><age>30</age></user>
</users>”’

root = ET.fromstring(data)
users = []

for user in root.findall(‘user’):
    name = user.find(‘name’).text
    age = int(user.find(‘age’).text)
    users.append({‘name’: name, ‘age’: age})

print(users)

输出结果为:

[{‘name’: ‘Alice’, ‘age’: 25}, {‘name’: ‘Bob’, ‘age’: 30}]

findall(‘user’) 方法会返回所有匹配的子元素,形成一个可迭代的“数组”。

XML中如何解析XML数组_XML解析XML数组的详细操作方法

怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

XML中如何解析XML数组_XML解析XML数组的详细操作方法44

查看详情 XML中如何解析XML数组_XML解析XML数组的详细操作方法

使用Java解析XML数组

Java中常用 DocumentBuilderFactoryDocumentBuilder 进行DOM解析。

示例代码片段:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xmlString)));

NodeList userList = doc.getElementsByTagName(“user”);
List<Map<String, String>> users = new ArrayList<>();

for (int i = 0; i < userList.getLength(); i++) {
    Node node = userList.item(i);
    if (node.getNodeType() == Node.ELEMENT_NODE) {
        Element element = (Element) node;
        String name = element.getElementsByTagName(“name”).item(0).getTextContent();
        String age = element.getElementsByTagName(“age”).item(0).getTextContent();
        Map<String, String> user = new HashMap<>();
        user.put(“name”, name);
        user.put(“age”, age);
        users.add(user);
    }
}

getElementsByTagName 返回的是 NodeList,相当于数组,通过循环遍历提取每个元素的内容。

使用JavaScript(浏览器环境)解析XML数组

前端JavaScript中,可以使用 DOMParser 解析XML字符串。

示例代码:

const xmlString = `
<users>
  <user><name>Alice</name><age>25</age></user>
  <user><name>Bob</name><age>30</age></user>
</users>`;

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, “text/xml”);
const userNodes = xmlDoc.querySelectorAll(“user”);
const users = [];

userNodes.forEach(node => {
    const name = node.querySelector(“name”).textContent;
    const age = node.querySelector(“age”).textContent;
    users.push({ name, age });
});

console.log(users);

querySelectorAll 返回的是类数组对象,包含所有匹配的节点,适合用于处理XML中的“数组”结构。

基本上就这些。只要识别出重复标签,再用对应语言的XML解析器提取,就能顺利把XML中的“数组”转成程序可用的数据结构。不同语言工具略有差异,逻辑一致。不复杂但容易忽略细节,比如空值判断和类型转换。

javascript python java 前端 node 浏览器 app 编程语言 工具 win xml解析 Python Java JavaScript print 数据类型 String if for foreach xml const 字符串 int 循环 数据结构 append map 类型转换 console 对象 dom

上一篇
下一篇
text=ZqhQzanResources