Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 5490|回复: 8

读xml文件的方法DEMO

[复制链接]

该用户从未签到

发表于 2009-6-22 16:47:10 | 显示全部楼层 |阅读模式
var
Doc: TXMLDocument;
Child: TDOMNode;
j: Integer;
str: char;
begin
ReadXMLFile(Doc, 'F:\Code\yt\Lazarus\test\xml\teste.xml');
// using FirstChild and NextSibling properties
Child := Doc.DocumentElement.FirstChild;
while Assigned(Child) do
begin
Memo.Lines.Add(Child.NodeName + ' ' + Child.Attributes.Item[0].NodeValue);
Application.MessageBox(PChar('aho'), PChar(UTF8TOANSI(Child.Attributes.Item[0].NodeValue)),16);
// using ChildNodes method
with Child.ChildNodes do
try
for j := 0 to (Count - 1) do
begin
Memo.Lines.Add(Item[j].NodeName + ' ' + Item[j].FirstChild.NodeValue);
Application.MessageBox(PChar(Item[j].NodeName), PChar(Item[j].FirstChild.NodeValue),16);
end;
finally
Free;
end;
Child := Child.NextSibling;
end;
Doc.Free;
回复

使用道具 举报

该用户从未签到

发表于 2009-8-13 19:07:09 | 显示全部楼层
问一下楼主,在lazarus中读写xml,应该加入什么单元?我按照在delphi下的做,怎么不行啊,老是找不到这个单元,找不到那个单元,给指点一下吧。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-12-1 09:47:04 | 显示全部楼层
DOM

还有fcl-xml库里面的一些单元
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-12-25 10:43:19 | 显示全部楼层
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
  DOM, Buttons, XMLRead, XMLWrite;  

我USE的
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-12-25 12:01:26 | 显示全部楼层
使用的是否提示找不到“TXMLDocument”,怎么样添加这个单元呢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-12-25 12:05:43 | 显示全部楼层
不好意思,没有添加USE DOM,
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-1-8 15:42:53 | 显示全部楼层
当我用Writeln输出Child.Attributes.Item[0].NodeValue时会报错,lz能否帮帮忙?
uses
  Classes, SysUtils,
  DOM, XMLRead, XMLWrite;
Var
  Doc : TXMLDocument;
  Child : TDOMNode;
  j:Integer;
begin
  ReadXMLFile(Doc,'xmlFile.xml');
       //using FirstChild and nextSibling properties
  Child := Doc.DocumentElement.FirstChild;

  while Assigned(Child) do
  begin
    Writeln(Child.NodeName + ':' + Child.Attributes.Item[0].NodeValue);
      //using ChildNodes method
    with Child.ChildNodes do
    try
      for j:=0 to (Count - 1) do
      begin
        Writeln(Item[j].NodeName + ':' + Item[j].FirstChild.NodeValue);
      end;
    finally
      Free;
    end;
    Child := Child.NextSibling;
  end;
  Doc.Free;
end.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-1-8 15:46:26 | 显示全部楼层
Project raised exception class 'External:SIGSEGV'
我的Ubuntu 9.04 Lazarus V0.9.26-4 beta
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-1-8 16:10:14 | 显示全部楼层
看debug-call stack
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-7-2 01:20 , Processed in 0.033519 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表