You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Basic如何读取数据存储于属性而非子节点的XML文件

XML自闭合标签属性读取方案

你当前处理的是属性直接存储在自闭合标签中的场景,无需读取子节点,直接调用XML解析库的属性读取API即可获取所有目标数据,以下是主流编程语言的实现示例:

Python 实现(使用内置标准库,无需额外安装依赖)

import xml.etree.ElementTree as ET

# 解析本地XML文件
tree = ET.parse('替换为你的XML文件路径.xml')
root = tree.getroot()

# 存储所有属性数据的列表
period_list = []

# 遍历所有period标签
for period_node in root.findall('.//period'):
    # 提取目标属性存入字典
    period_info = {
        "name": period_node.get("name"),
        "short": period_node.get("short"),
        "period": period_node.get("period"),
        "starttime": period_node.get("starttime"),
        "endtime": period_node.get("endtime")
    }
    period_list.append(period_info)

# 输出结果验证
for item in period_list:
    print(item)

JavaScript 实现(兼容浏览器/Node.js环境)

// 浏览器环境示例,Node.js环境可引入xmldom库实现相同逻辑
const xmlContent = `替换为你的XML字符串内容`
const parser = new DOMParser()
const xmlDoc = parser.parseFromString(xmlContent, "text/xml")
const periodNodes = xmlDoc.getElementsByTagName("period")
const periodList = []

for (let i = 0; i < periodNodes.length; i++) {
    const node = periodNodes[i]
    periodList.push({
        name: node.getAttribute("name"),
        short: node.getAttribute("short"),
        period: node.getAttribute("period"),
        starttime: node.getAttribute("starttime"),
        endtime: node.getAttribute("endtime")
    })
}

console.log(periodList)

注意事项

  • 若存在属性缺失的场景,可以在获取属性时添加默认值避免空值报错:Python写法为period_node.get('name', '默认值'),JavaScript写法为node.getAttribute('name') ?? '默认值'
  • 若需要处理的XML文件体积超过100MB,建议采用SAX流式解析方案,避免一次性加载整个文件占用过多内存

内容的提问来源于stack exchange,提问作者Caravansary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:27:03