在Delphi里怎样实现创建一个Xml空文档,并可以加节点等 *** 作

在Delphi里怎样实现创建一个Xml空文档,并可以加节点等 *** 作,第1张

uses msxmldom, XMLDoc, XMLIntf

// 注意节点名 属性名大小写

procedure TForm1.Button1Click(Sender: TObject)

var

// Xml 容器

XMLDoc: TXMLDocument

IXMLDoc: IXMLDocument

// Xml节点

Root_Node: IXMLNode

Parent_Node: IXMLNode

Child_Node: IXMLNode

begin

XMLDoc:= TXMLDocument.Create(nil)

IXMLDoc:= XMLDoc

try

XMLDoc.LoadFromFile('d:\Test.xml')

XMLDoc.Active:= True

XMLDoc.Encoding:= 'UTF-8'

Root_Node:= XMLDoc.DocumentElement

if Root_Node = nil then

Exit

if Root_Node.NodeName >'map' then

Exit

Parent_Node:= Root_Node.ChildNodes.First

if Parent_Node = nil then

Exit

if Parent_Node.NodeName = 'point' then

begin

Memo1.Lines.Add('point type = "' + Parent_Node.Attributes['type'] + '"')

Child_Node:= Parent_Node.ChildNodes.First

while Child_Node >nil do

begin

Memo1.Lines.Add(Child_Node.NodeName +

' ' + VarToStr(Child_Node.NodeValue) +

' x = ' + VarToStr(Child_Node.Attributes['X']) +

' y = ' + VarToStr(Child_Node.Attributes['Y']))

Child_Node:= Child_Node.NextSibling

end

end

finally

IXMLDOC:= nil

XMLDoc:= nil

XMLDoc.Free

end

end

用这个试试

XML文件必须要有也最多有1个根节点

var

XMLDocument1:IXMLDocument

pNode,cNode:IXMLNode{假设pNode为根节点,另外一个为子节点}

begin

if FileExists('test.xml') then DeleteFile('test.xml'){检测文件是否存在}

XMLDocument1:=NewXMLDocument

XMLDocument1.Active := True {必须先激活}

XMLDocument1.Version := '1.0' {设置版本}

XMLDocument1.Encoding := 'GB2312' {设置语言}

pNode := XMLDocument1.AddChild('根节点名'){添加的第一个节点是根节点, 现在的 pNode 是根节点}

cNode := pNode.AddChild('test1') {为 pNode 添加子节点, 返回值 cNode 指向了新添加的节点}

cNode.Text := 'test1子节点的内容'

cNode := pNode.AddChild('test2') {为 pNode 添加子节点, 返回值 cNode 指向了新添加的节点}

cNode.Text := 'test2子节点的内容'

end

如果你还想向子节点再加一个子节点可以定义多一个变量,如dNode:

dNode := cNode.AddChild('test3') {为 cNode 添加子节点, 返回值 dNode 指向了新添加的节点}

dNode.Text := 'test3子节点的内容'

希望能够帮助你


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11549850.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存