Vue.js怎么加载和显示XML数据 axios请求XML


Vue.js 本身不直接解析 XML,但可以通过 axios 请求 XML 文件,并借助浏览器原生的 DOMParser 将响应文本转换为可操作的 XML 文档对象(Document),再提取数据绑定到 Vue 实例中显示。

1. 使用 axios 请求 XML 并设置响应类型

默认情况下 axios 将响应当作 JSON 处理,请求 XML 时需显式指定 responseType: 'text',避免自动解析失败:

axios.get('/data.xml', {
  responseType: 'text' // 关键:确保拿到原始字符串
})
.then(response => {
  const xmlText = response.data;
  // 后续用 DOMParser 解析
});

2. 用 DOMParser 解析 XML 字符串

浏览器内置的 DOMParser 可将 XML 字符串转为标准的 XML 文档对象,支持 querySelectorgetElementsByTagName 等操作:

  • 创建解析器:const parser = new DOMParser();
  • 解析 XML:const xmlDoc = parser.parseFromString(xmlText, 'application/xml');
  • 检查错误(可选):if (xmlDoc.querySelector('parsererror')) { /* 解析失败 */ }

3. 提取数据并绑定到 Vue 响应式状态

xmlDoc 中读取节点内容,赋值给 Vue 的 dataref/reactive。例如 XML 如下:


  Vue 入门张三
  XML 实战李四

在 Vue 3 Composition API 中可这样处理:

const books = ref([]);
onMounted(async () => {
  try {
    const res = await axios.get('/books.xml', { responseType: 'text' });
    const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(res.data, 'application/xml');
if (xmlDoc.querySelector('parsererror')) {
  console.error('XML 解析错误');
  return;
}

const bookNodes = xmlDoc.querySelectorAll('book');
books.value = Array.from(bookNodes).map(node => ({
  title: node.querySelector('title')?.textContent || '',
  author: node.querySelector('author')?.textContent || ''
}));

} catch (e) { console.error('加载失败', e); } });

4. 在模板中安全显示 XML 数据

使用 v-for 渲染列表,注意对可能为空的字段做兜底(如 {{ book.title || '未知标题' }})。避免直接插入未转义的 XML 内容到 v-html,除非确认内容可信且已过滤 XSS 风险。

若需保留原始 XML 结构展示(如调试),可用

{{ xmlString }}
并用 white-space: pre-wrap 样式保持换行缩进。


# vue  # react  # html  # js  # json  # node  # vue.js  # 浏览器  # app  # axios  # ai  # ios  # xss  # if  # for  # catch  # xml  # Error  # const  # 字符串 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: 如何高效删除 NumPy 二维数组中所有元素相同的列  如何在JavaScript中动态拼接PHP的base_url与前端变量  MAC如何修改默认应用程序_MAC文件后缀关联设置与打开方式更改【教程】  如何提升Golang JSON序列化性能_Golang JSON编码效率优化方法  c++的位运算怎么用 与、或、异或、移位操作详解【底层知识】  Windows如何使用BitLocker To Go加密U盘?(移动驱动器加密)  php文件怎么变mp4保存_php输出视频流保存为mp4操作【操作】  怎么将XML数据可视化 D3.js加载XML  如何有效拦截拼接式恶意域名的垃圾信息  Mac怎么设置鼠标滚动速度_Mac鼠标设置详细参数  Python爬虫项目实战教程_Scrapy抓取与存储数据实例  Linux怎么设置磁盘配额_Linux系统Quota安装与用户空间限制【教程】  Win11如何关闭游戏模式 Win11禁用Xbox Game Bar录制【优化】  php能跑在stm32上吗_php在stm32微控制器上的移植方法【介绍】  php怎么下载安装后设置错误日志_phpini log配置教程【汇总】  C#怎么创建控制台应用 C# Console App项目创建方法  Windows10电脑怎么设置防火墙出站规则_Win10禁止程序联网教程  c++的static关键字有什么用 静态变量和静态函数的应用场景【教程】  C++如何使用std::async进行异步编程?(future用法)  c++如何判断文件是否存在_c++ filesystem库用法  如何在Golang中实现并发消息队列消费者_Golang channel消息消费实践  如何在Windows中创建新的用户账户?(标准与管理员)  VSC怎样在Linux运行PHP_Ubuntu系统配置步骤【操作】  php命令行怎么运行_通过CLI模式执行PHP脚本的步骤【说明】  Windows10电脑怎么设置文件权限_Win10安全选项卡所有者修改  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Win11怎么设置虚拟内存最佳大小_Windows11性能选项自定义分页文件  Linux怎么禁止Root用户远程登录_Linux系统SSH加固与安全设置【教程】  PHP 中 require() 语句返回值的用法详解  Go语言中CookieJar的持久化机制解析:内存存储与自定义持久化方案  C#怎么使用委托和事件 C# delegate与event编程方法  Win10系统怎么查看显卡温度_Win10任务管理器GPU温度  php485函数执行慢怎么优化_php485性能提升小技巧【技巧】  Win11资源管理器卡顿怎么办 Win11文件资源管理器重启技巧【优化】  MySQL 中使用 IF 和 CASE 实现查询字段条件化显示  如何使用Golang sync.Map实现并发安全map_避免锁竞争  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Windows执行文件被SmartScreen拦截原因_安全提示与绕过方式  Win10系统字体模糊怎么办_Windows10高级缩放设置修复  Windows 11怎么设置默认解压软件_Windows 11为ZIP/RAR文件指定默认打开程序  如何在 PHP 中按相同键合并两个关联数组为二维数组  如何使用Golang实现聊天室消息存档_存储聊天记录到文件  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  php8.4如何调用com组件_php8.4windows下com操作指南【教程】  Win10怎么卸载爱奇艺_Win10彻底卸载爱奇艺方法【步骤】  Windows 11怎么更改锁屏超时时间_Windows 11电源选项中设置屏幕关闭时间  c++中如何对数组进行排序_c++数组排序算法汇总  Win11如何设置省电模式 Win11开启电池节电功能【优化】  c++如何连接Redis c++ hiredis库使用教程【指南】  全球各国上班时间表外贸邮件时间 

 2026-01-05

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.