var
FXmlPhoto: TXMLDocument;
begin
FXmlPhoto := TXMLDocument.Create(nil);
FXmlPhoto.Active := False;
FXmlPhoto.FileName := Value;
FXmlPhoto.Active := True; RootNode := FXmlPhoto.ChildNodes.Nodes['Root'];
StyleNode := RootNode.ChildNodes.Nodes['Style'];
//...
end;在“RootNode:=...”上报“Access Vidlation at address XXXXXXXX in module '****.exe'.Read of address XXXXXXXX Process stopped”
请大家帮我看看!谢谢!
FXmlPhoto: TXMLDocument;
begin
FXmlPhoto := TXMLDocument.Create(nil);
FXmlPhoto.Active := False;
FXmlPhoto.FileName := Value;
FXmlPhoto.Active := True; RootNode := FXmlPhoto.ChildNodes.Nodes['Root'];
StyleNode := RootNode.ChildNodes.Nodes['Style'];
//...
end;在“RootNode:=...”上报“Access Vidlation at address XXXXXXXX in module '****.exe'.Read of address XXXXXXXX Process stopped”
请大家帮我看看!谢谢!
FXmlPhoto := TXMLDocument.Create(Application);
FXmlPhoto.Active := True;
FXmlPhoto.LoadFromFile(文件名);
……
FXmlPhoto.Free;
var
FXmlPhoto: TXMLDocument;
begin
FXmlPhoto := TXMLDocument.Create(Self);
FXmlPhoto.LoadFromFile('aa.xml');
showmessage(FXmlPhoto.DocumentElement.NodeName);
end;
这样可以的.
在创建了FXmlPhoto后,应该导入XML文件,然后才能正确使用,导入后就不用再把Active设成True,导入XML后会自动打开.
FXmlPhoto: IXMLDocument;//这儿用IXMLDocument,而不是TXMLDocument
begin
FXmlPhoto := TXMLDocument.Create(nil);//这儿参数就用NIL....
FXmlPhoto.Active := False;
....
//...
end;
嘿嘿,,这也是秘籍...
var
root,node:IXMLNode;
xmlList:IXMLNodeList;
i:Integer;
begin
getUrl:='';
InXml.LoadFromFile(StrFilePath+'\Data\Data.xml');
root:=InXml.DocumentElement; //得到xml的根结点Nodes嘿嘿这个控件我拖进去的
node:=root.ChildNodes.First; //得到根结点的第一个子结点(第一个Node)
while(node<>nil) do
begin
xmlList:=node.ChildNodes;
for i:=0 to xmlList.Count-1 do
begin
if(xmlList.Nodes[i].Text=title)then
begin
getUrl:=xmlList.Nodes[i].Attributes['Url'];
exit;
end; end; node:=node.NextSibling;
end;
end;