1,593
社区成员




procedure TForm1.Button23Click(Sender: TObject);
var XMLRootNode,XMLnode1,XMLnode2,XMLnode3,XMLnode4,XMLnode5:IXMLNode;
begin
XMLDocument1.XML.Clear;
XMLDocument1.FileName :=MainPath+'test.xml';
XMLDocument1.Active := True; {激活}
XMLRootNode:=XMLDocument1.DocumentElement;
Memo1.Text := ReadXml(XMLRootNode);
// XMLDocument1.DocumentElement:=XMLRootNode;
// XMLDocument1.SaveToFile(MainPath+'test4.xml'); // 保存XML文件
// Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text);
end;
procedure TForm1.Button24Click(Sender: TObject);
var i,j,k,k1,k2:integer;
nodeList,nodeList1,nodeList2,nodeList3,nodeList4:IXMLNodeList;
XMLRootNode,XMLnode1,XMLnode2,XMLnode3,XMLnode4,XMLnode5:IXMLNode;
begin
XMLDocument1.FileName := 'Test.xml';
XMLDocument1.Active := True; {激活}
Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text);
XMLRootNode := XMLDocument1.DocumentElement; // 根节点
// XMLRootNode.SetAttribute;
XMLDocument1.SaveToFile('D:\test6.xml'); // 保存XML文件
Memo2.Lines.Add('0根节点:'+XMLRootNode.nodeName+',子节点: '+IntToStr( XMLRootNode.ChildNodes.Count));
NodeList:=XMLRootNode.ChildNodes; // 第1级
fOR I:=0 TO NodeList.Count-1 DO
BEGIN
XMLNode1:=NodeList.Get(i);
If XMLNode1.HasChildNodes then
begin
if XMLNode1.IsTextElement
then Memo2.Lines.Add('1 节点 '+IntToStr(i+1)+' '+XMLNode1.NodeName+' 属性文本')
else Memo2.Lines.Add('1 节点 '+IntToStr(i+1)+' '+XMLNode1.NodeName);
nodeList1:=XMLNode1.ChildNodes; // 第2级
For j:=0 TO NodeList1.Count-1 DO
begin
XMLNode2:=NodeList1.Get(j);
If XMLNode2.HasChildNodes then
begin
if XMLNode2.IsTextElement
then Memo2.Lines.Add('2 节点 '+IntToStr(j+1)+' '+XMLNode2.NodeName+' 属性文本')
else Memo2.Lines.Add('2 节点 '+IntToStr(j+1)+' '+XMLNode2.NodeName);
nodeList2:=XMLNode2.ChildNodes; // 第2级
fOR k:=0 TO NodeList2.Count-1 DO
BEGIN
XMLNode3:=NodeList2.Get(k);
If XMLNode3.HasChildNodes then
begin
if XMLNode3.IsTextElement
then Memo2.Lines.Add('3 节点 '+IntToStr(k+1)+' '+XMLNode3.NodeName+' 属性文本')
else Memo2.Lines.Add('3 节点 '+IntToStr(k+1)+' '+XMLNode3.NodeName);
NodeList3:=XMLNode3.ChildNodes; // 第2级
fOR k1:=0 TO NodeList3.Count-1 DO
BEGIN
XMLNode4:=NodeList3.Get(k1);
If XMLNode4.HasChildNodes then
begin
if XMLNode4.IsTextElement
then Memo2.Lines.Add('3 节点 '+IntToStr(k1+1)+' '+XMLNode4.NodeName+' 属性文本')
else Memo2.Lines.Add('3 节点 '+IntToStr(k1+1)+' '+XMLNode4.NodeName);
NodeList4:=XMLNode4.ChildNodes; // 第2级
fOR k2:=0 TO NodeList4.Count-1 DO
BEGIN
XMLNode5:=NodeList4.Get(k2);
if XMLNode5.HasChildNodes then
begin
if XMLNode5.IsTextElement
then Memo2.Lines.Add('4 节点 '+IntToStr(k2+1)+' '+XMLNode5.NodeName+' 属性文本')
else Memo2.Lines.Add('4 节点 '+IntToStr(k2+1)+' '+XMLNode5.NodeName);
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
Memo1.Clear;
XMLDocument1.LoadFromFile(MainPath+'20140606.xml'); // 读取XML文件
Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text); // 查看格式化文本
2、加载内存文件
var ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.LoadFromFile(MainPath+'test.xml');
XMLDocument1.LoadFromStream(ms);
ms.Free;
Memo1.Lines := XMLDocument1.XML; {查看}
3、创建XML
var XML1:TXMLDocument;
Node:IXMLNode; // 根结点
node1,node2:IXMLNode; // 子结点
begin
XML1:=TXMLDocument.Create(nil);
XML1.Active:=True;
XML1.Version:='1.0';
XML1.Encoding:='gb2312';
Node:=XML1.AddChild('科室名单'); // 第一个节点是根节点, Root指向根节点
Node.SetAttribute('备注', '测试'); // 为根节点设置属性 职务,科长
Node.SetAttribute('备注', '正局级');
Node1 := Node.AddChild('人员'); // 为根节点添加子节点, 当前 pNode 指向“人员”节点
Node1.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node1.SetAttribute('备注', '正局级');
Node2 := Node1.AddChild('姓名'); // 为 pNode 添加子节点
Node2.Text := '张三'; // 为 pNode 添加文本值
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级');
Node2 := Node.AddChild('性别');
Node2.Text := '男';
Node2 := Node1.AddChild('年龄');
Node2.Text := '34';
Node2 := Node1.AddChild('AAA');
Node2 := Node1.AddChild('BBB');
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级');
Node2 := Node1.AddChild('CCC');
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级');
self.XMLDocument1.LoadFromFile("");
XMLDocument1.DocumentElement.ChildNodes.FindNode("Status").NodeValue