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

使用Dart/Flutter xml 6.5.0解析XML时如何保留格式(至少换行)?

保留XML格式的解决方案
  • 不要使用innerText,它的设计就是提取纯文本,会自动忽略XML标签、换行和缩进。
  • 要保留XML格式(包括换行),需要将目标元素的子节点(或整个元素)序列化为XML字符串,利用xml包的toXmlString()方法并开启格式化参数。

代码示例

import 'package:xml/xml.dart';

// 假设已经完成XML解析,获取到目标element
final contentElement = element.findElements("content").first;

// 方式1:仅保留content内部的XML内容(不含<content>标签)
final innerFormattedXml = contentElement.children
    .map((child) => child.toXmlString(pretty: true))
    .join('\n');

// 方式2:保留包含<content>标签的完整XML结构
final fullFormattedXml = contentElement.toXmlString(pretty: true);

说明

toXmlString(pretty: true)会按照XML的原始结构生成带换行和缩进的字符串,完美保留原格式。如果只需要content节点内部的内容,就遍历它的children逐个序列化;如果需要连同content标签一起输出,直接序列化整个元素即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:32:32