使用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
相关产品推荐
相关产品推荐

