Delphi和Lazarus均支持XML解析与生成:Delphi用TXMLDocument和IXML接口,Lazarus用XMLRead/XMLWrite及DOM;DOM适合小数据随机访问,SAX适合大数据流式处理;需注意编码统一(推荐UTF-8)和节点生命周期管理。

Delphi 和 Lazarus 都支持 XML 解析与生成,但方式略有不同:Delphi 自带 TXMLDocument(基于 MSXML 或 OpenXML)、IXMLxxx 接口体系;Lazarus 主要靠 XMLRead / XMLWrite 单元 + TXMLParser / TXMLWriter,也支持 DOM 模式(需启用 dom 单元)。
读取 XML 文件(DOM 方式,跨平台推荐)
适合结构清晰、数据量不大的场景,可随机访问节点。
- Delphi:用
TXMLDocument(记得设置Owner = True,并调用LoadFromFile);启用DOMVendor(如'MSXML'或'OpenXML') - Lazarus:引入
dom和xmlread,用XMLRead函数加载为IDOMDocument;示例:Doc := XMLRead('config.xml');
然后用Doc.DocumentElement开始遍历子节点 - 通用技巧:用
GetElementsByTagName('xxx')快速获取同名元素;用Node.Attributes['attrname']读属性
写入 XML 文件(手动构造或 DOM 生成)
避免字符串拼接,优先用 DOM 构建保证格式正确。
Android应用框架原理与程序设计36技 pdf繁体版,书籍内容适用于Android 1.0,有些朋友可能对Android还不太熟悉吧?不知您是否听说过Google 在HTC定制的高端手机呢?其操作系统是基于Android的,如果还是不太清楚的话,可以Google一下“HTC g2”手机,可以大致了解一下手机操作系统的界面及架构特点。不管怎么说,Android手机编程目前还是主要面向高端,在将来可能会普及,因此Android编程还是很有必要掌握的。
- Delphi:创建
TXMLDocument→CreateElement→AppendChild→ 最后SaveToFile - Lazarus:用
dom单元创建IDOMImplementation→CreateDocument→ 添加元素和文本节点;保存用XMLWrite函数输出到文件或流 - 注意:中文内容要确保编码一致(建议 UTF-8),Lazarus 中可设
Doc.SetXmlVersion('1.0'); Doc.SetXmlEncoding('UTF-8');
轻量解析(SAX/事件式,适合大文件)
不载入整个文档,边读边处理,内存占用低。
- Delphi:可用
TXMLParser(在XMLParser单元),重写OnStartElement/OnEndElement等事件 - Lazarus:用
TXMLParser(xmlparser单元),设置OnStartElement回调,在里面判断标签名并提取属性或文本 - 关键点:文本内容在
OnCharacterData中获取,且可能分多次回调,需累积字符串
实用小贴士
- 路径查找别硬写:Delphi 可用
SelectNodes('//item[@active="1"]')(XPath,需 MSXML 支持);Lazarus 需第三方库(如lazxml)或手动遍历 - Lazarus 默认不带完整 DOM 写支持,若
XMLWrite输出无缩进,可手动加换行和空格,或用laz2_xml中的美化函数 - 调试时用
Node.XML(Delphi)或Node.NodeValue+Node.TextContent(Lazarus DOM)快速查看片段
基本上就这些。选 DOM 还是 SAX,看数据大小和访问模式;跨平台项目优先用 Lazarus 的 dom+xmlread 组合,Delphi 项目可直接上 TXMLDocument。不复杂但容易忽略编码和节点生命周期管理。









