学做宝宝衣服的网站,成都科技网站建设热,wordpress伪装成破解成功,怎么做网站登录界面由于官方提供的TXMLDocument组件并不是特别好用#xff0c;有着体积大#xff0c;速度慢#xff0c;调用不方便等缺点。 这里直接利用封装好的XML 解析库来对Xml数据进行解析与生成。 文章目录 1、生成XML文件2、解析XML文件3、生成带注释的XML文件4、删除XML文件节点 1、生…由于官方提供的TXMLDocument组件并不是特别好用有着体积大速度慢调用不方便等缺点。 这里直接利用封装好的XML 解析库来对Xml数据进行解析与生成。 文章目录 1、生成XML文件2、解析XML文件3、生成带注释的XML文件4、删除XML文件节点 1、生成XML文件
procedure TForm1.FormShow(Sender: TObject);
varXml: TXmlVerySimple;BookNode, EntityNode: TXmlNode;
begin// 创建一个新的XML文档Xml : TXmlVerySimple.Create;// 添加一个新的子节点第一个子节点是DocumentElementXml.AddChild(books);// 在文档根节点下添加一个新的书籍节点BookNode : Xml.DocumentElement.AddChild(book);// 添加一个名为id的属性BookNode.Attributes[id] : bk101;// 创建作者和标题的子节点EntityNode : BookNode.AddChild(author);EntityNode.Text : Gambardella, Matthew;EntityNode : BookNode.AddChild(title);EntityNode.Text : XML Developers Guide;/* 更简短的创建作者和标题的子节点BookNode.AddChild(author).Text : Gambardella, Matthew;BookNode.AddChild(title).Text : XML Developers Guide;*//* 更简短的创建作者和标题的子节点(同上)Xml.DocumentElement.AddChild(book).SetAttribute(id, bk101).AddChild(author).SetText(Gambardella, Matthew).Parent.AddChild(title).Text : XML Developers Guide;*/// 将内容写入Memo前3个字符是Unicode BOMMemo1.Lines.Text : Xml.Text;// 写入到文件Xml.SaveToFile(example1.xml);// 释放资源Xml.Free;
end;生成XML内容如下:
?xml version1.0 encodingutf-8?
booksbook idbk101authorGambardella, Matthew/authortitleXML Developerapos;s Guide/title/book
/books2、解析XML文件
procedure TForm1.FormShow(Sender: TObject);
varXml: TXmlVerySimple;BookNode, EntityNode: TXmlNode;Books: TXmlNodeList;I: Integer;
begin// 首先创建一个XML文档并保存Xml : TXmlVerySimple.Create;Xml.AddChild(books);for I : 1 to 3 dobeginXml.DocumentElement.AddChild(book).SetAttribute(id, bk101- IntToStr(I)).AddChild(author).SetText(Gambardella, Matthew).Parent.AddChild(title).Text : XML Developers Guide Part IntToStr(I);end;Xml.DocumentElement.AddChild(book).SetAttribute(id, bk103).AddChild(author).SetText(Corets, Eva).Parent.AddChild(title).Text : Maeve Ascendant;Xml.SaveToFile(example4.xml);Xml.Free;// 现在尝试加载它Xml : TXmlVerySimple.Create;Xml.LoadFromFile(example4.xml);// FindNodes 返回一个节点列表Books : Xml.DocumentElement.FindNodes(book);for BookNode in Books dobeginMemo1.Lines.Add(书籍: BookNode.Attributes[id]);// 定位title节点并将其内容写入MemoEntityNode : BookNode.Find(title);if Assigned(EntityNode) thenMemo1.Lines.Add(标题: EntityNode.Text);// 定位author节点并将其内容写入MemoEntityNode : BookNode.Find(author);if Assigned(EntityNode) thenMemo1.Lines.Add(作者: EntityNode.Text);Memo1.Lines.Add();end;Books.Free;// 释放资源Xml.Free;
end;返回:
Book: bk101-1
Title: XML Developers Guide Part 1
Author: Gambardella, MatthewBook: bk101-2
Title: XML Developers Guide Part 2
Author: Gambardella, MatthewBook: bk101-3
Title: XML Developers Guide Part 3
Author: Gambardella, MatthewBook: bk103
Title: Maeve Ascendant
Author: Corets, Eva3、生成带注释的XML文件
procedure TForm1.FormShow(Sender: TObject);
varXml: TXmlVerySimple;
begin// 首先创建一个XML文档并保存Xml : TXmlVerySimple.Create;Xml.AddChild(books);// 添加一个新的注释节点节点名称为空因为在输出时不使用Xml.DocumentElement.AddChild(, ntComment).Text : 这是第一本书 ;// 添加一本书Xml.DocumentElement.AddChild(book).SetAttribute(id, bk101).AddChild(author).SetText(Gambardella, Matthew).Parent.AddChild(title).Text : XML Developers Guide;// 添加一个新的注释节点节点名称为空因为在输出时不使用Xml.DocumentElement.AddChild(, ntComment).Text : 这是第二本书 ;// 添加一本书Xml.DocumentElement.AddChild(book).SetAttribute(id, bk103).AddChild(author).SetText(Corets, Eva).Parent.AddChild(title).Text : Maeve Ascendant;// 将内容写入Memo前3个字符是Unicode BOMMemo1.Lines.Text : Xml.Text;// 写入到文件Xml.SaveToFile(example5.xml);// 释放资源Xml.Free;
end;返回:
?xml version1.0 encodingutf-8?
books!-- 这是第一本书 --book idbk101authorGambardella, Matthew/authortitleXML Developerapos;s Guide/title/book!-- 这是第二本书 --book idbk103authorCorets, Eva/authortitleMaeve Ascendant/title/book
/books4、删除XML文件节点
procedure TForm1.FormShow(Sender: TObject);
varXml: TXmlVerySimple;Node: TXmlNode;CommentNodes: TXmlNodeList;
begin// 首先创建一个XML文档并保存Xml : TXmlVerySimple.Create;Xml.AddChild(books);// 添加一个新的注释节点节点名称为空因为在输出时不使用Xml.DocumentElement.AddChild(, ntComment).Text : 这是第一本书 ;// 添加一本书Xml.DocumentElement.AddChild(book).SetAttribute(id, bk101).AddChild(author).SetText(Gambardella, Matthew).Parent.AddChild(title).Text : XML Developers Guide;// 添加一个新的注释节点节点名称为空因为在输出时不使用Xml.DocumentElement.AddChild(, ntComment).Text : 这是第二本书 ;// 添加一本书Xml.DocumentElement.AddChild(book).SetAttribute(id, bk103).AddChild(author).SetText(Corets, Eva).Parent.AddChild(title).Text : Maeve Ascendant;// 现在删除所有注释节点位于DocumentElement根的第一级CommentNodes : Xml.DocumentElement.FindNodes(, [ntComment]);// 要删除一个节点只需从其父节点中移除它不要在未从父节点中删除的情况下释放它for Node in CommentNodes doNode.Parent.ChildNodes.Remove(Node);CommentNodes.Free;// 将内容写入Memo前3个字符是Unicode BOMMemo1.Lines.Text : Xml.Text;// 写入到文件Xml.SaveToFile(example6.xml);// 释放资源Xml.Free;
end;