
// 注意节点名 属性名大小写
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子节点的内容'
希望能够帮助你
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)