打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<map>
    <point type="">
        <p X="10" Y="10">1</p>
        <p X="20" Y="20">2</p>
        <p X="25" Y="25">3</p>
        <p X="28" Y="28">4</p>
</point>
</map>
xml文件如上
如何循环读取每个点的坐标x和y值?
以及如何创建相同格式的xml?
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?

回答

procedure TForm1.Button2Click(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.Active:= True;    XMLDoc.Encoding:= 'UTF-8';    XMLDoc.StandAlone:= 'yes';    Root_Node:= XMLDoc.AddChild('map');    Parent_Node:= Root_Node.AddChild('point');    Parent_Node.SetAttributeNS('type', '', '');    Child_Node:= Parent_Node.AddChild('p');    Child_Node.SetAttributeNS('X', '', '10');    Child_Node.SetAttributeNS('Y', '', '10');    Child_Node.NodeValue:= '1';    Child_Node:= Parent_Node.AddChild('p');    Child_Node.SetAttributeNS('X', '', '20');    Child_Node.SetAttributeNS('Y', '', '20');    Child_Node.NodeValue:= '2';    Child_Node:= Parent_Node.AddChild('p');    Child_Node.SetAttributeNS('X', '', '25');    Child_Node.SetAttributeNS('Y', '', '25');    Child_Node.NodeValue:= '3';    Child_Node:= Parent_Node.AddChild('p');    Child_Node.SetAttributeNS('X', '', '28');    Child_Node.SetAttributeNS('Y', '', '28');    Child_Node.NodeValue:= '4';    XMLDoc.SaveToFile('d:\Test1.xml');  finally    IXMLDOC:= nil;    XMLDoc:= nil;    XMLDoc.Free;  end;end;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
简析Delphi中的XML编程
xml表里的数据读入到listview里
JS解析XML - snowfox3761的专栏
创建IXMLDOMDocument对象的三种方法:
基本DELPHI中XML编程
Javascript 操作XML
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服