我从某个WEB上读取一段XML格式的字符串进来,然后XML导入到一个Dataset中,就出现,access violation at address 00000000 的错误,我反复的找,也找不到错误的地方,我是个初学者,不知道怎么分析这个东西,请路过的高手看看吧!
//XMLStr,XML的字符串内容
//数据行的标志,根据他读取多少条数据记录
function TFormMain.XMLTODataSet(XMLStr:widestring;RowID:Widestring):TClientDataSet;
var DBset:TClientDataSet; {Dataset}
FieldNum :Integer; {字段数量}
RowsNum :Integer; {记录条数}
I,J:Integer;
XDOC:IXMLDOMDocument; {XML文档}
XNodes:IXMLDOMNode; {XML节点}
XNodeList:IXMLDOMNodeList;{XML节点列表}
begin
XDOC := CreateDOMDocument;
XDOC.loadXML(XMLStr);
XNodes := XDOC.DocumentElement;
XNodeList := XDOC.selectNodes(RowID);
FieldNum := XNodeList.item[0].childNodes.length;
RowsNum := XNodeList.length;
showmessage('字段'+inttostr(FieldNum)+',共'+inttostr(RowsNum)+'条数据');
DBset := TClientDataSet.Create(nil); DBset.FieldDefs.Add('1111',ftstring,1000);
DBset.CreateDataSet; //建立
DBset.Active:=true; DBset.Append;
DBset.FieldValues['1111']:='2222'; DBset.Post;
result := DBset;
end;
//XMLStr,XML的字符串内容
//数据行的标志,根据他读取多少条数据记录
function TFormMain.XMLTODataSet(XMLStr:widestring;RowID:Widestring):TClientDataSet;
var DBset:TClientDataSet; {Dataset}
FieldNum :Integer; {字段数量}
RowsNum :Integer; {记录条数}
I,J:Integer;
XDOC:IXMLDOMDocument; {XML文档}
XNodes:IXMLDOMNode; {XML节点}
XNodeList:IXMLDOMNodeList;{XML节点列表}
begin
XDOC := CreateDOMDocument;
XDOC.loadXML(XMLStr);
XNodes := XDOC.DocumentElement;
XNodeList := XDOC.selectNodes(RowID);
FieldNum := XNodeList.item[0].childNodes.length;
RowsNum := XNodeList.length;
showmessage('字段'+inttostr(FieldNum)+',共'+inttostr(RowsNum)+'条数据');
DBset := TClientDataSet.Create(nil); DBset.FieldDefs.Add('1111',ftstring,1000);
DBset.CreateDataSet; //建立
DBset.Active:=true; DBset.Append;
DBset.FieldValues['1111']:='2222'; DBset.Post;
result := DBset;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货