Delphi6/7 中XML 文件的應用 (轉)
6/7 中 文件的應用
microsoft-com::office" />
XML文件是新一代的資料格式。它可以用樹的形式儲存一切資料。
下面介紹一下TXMLDocument的一些用法:
已定義:
XMLDoc: TXMLDocument;
EncodeME: TncoderMIME;
DecoderMIME: TIdDecoderMIME;
xn:IXMLNode;
f:TFileStream;
EncoderMIME和DecoderMIME是Indy控制元件中的Mime工具,用來把所有型別的字串轉換為Mime(Base64)的ASCII碼,你用其他的編碼方式也可以的,比如:UUE,XXE。
XN是XML文件的樹結點。F是流。
首先,載入XML文件
xmldoc.LoadFromFile(‘XML文件的檔名');
xmldoc.Active:=true; //使XML文件變為活動
再次,定位Xn在XML文件中的位置(假設是的二層的第四個節點)
xn:=xmldoc.Node;
xn:=xn.ChildNodes.Nodes[1]; //節點數是從零開始的,所以要減一
xn:=xn.ChildNodes.Nodes[3];
接著,
增加下一級節點
xn:=xn.AddChild(‘新的節點名字’)
xn.Text:=’節點的文字內容’
xn.Attributes['節點的第一個屬性']:=’屬性值’
xn.Attributes['節點的第二個屬性']:=’屬性值’
修改節點,(節點的名字是不能改的)
xn.Text:=’新的文字內容’
xn.Attributes['節點的第二個屬性']:=’ 新的屬性值’
刪除節點Xn
xn.ParentNode.ChildNodes.Delete(xn.ParentNode.ChildNodes.IndexOf(xn));
利用Xn.Text存放檔案,
f:=TFileStream.Create('要存放的檔名',fmOpenRead);
xn.Text:=EncoderMime.Encode(f); //轉換格式,檔案編碼
f.Free;
解出Xn.Text中的檔案,
f:=TFileStream.Create(‘目標檔名’,fmCreate);
DecoderMime.DecodeToStream(xn.Text,f);
f.Free;
最好利用Xn.attribute來增加一個屬性來表示檔案的編碼方式,比如
xn.Attributes['Type']='Base64'
這樣改上面的兩個片段為:
xn.Attributes['Type']:='Base64';
f:=TFileStream.Create('要存放的檔名',fmOpenRead);
xn.Text:=EncoderMime.Encode(f);
f.Free;
if xn.IsTextElement //Xn中存在Text
then if xn.HasAttribute('Type') then //Xn中存在屬性’Type’
if xn.Attributes['Type']='Base64' then
begin
f:=TFileStream.Create(‘目標檔名’,fmCreate);
DecoderMime.DecodeToStream(xn.Text,f);
f.Free;
end;
最後給出一個利用TTreeView來顯示XML文件的所有樹結構
XMLTree是TTreeView類
procedure TForm1.ReadXMLTree(TreeNode:TTreeNode; XMLTreeNode:IXMLNode);
var i:integer; c:TTreeNode;
begin
for i:=0 to XMLTreeNode.ChildNodes.Count-1 do
begin
c:=xmltree.Items.AddChild(RootTreeNode,XMLTreeNode.ChildNodes.Nodes[i].NodeName);
ReadXMLTree(c,XMLTreeNode.ChildNodes.Nodes[i]);
end;
end;
使用方法
ReadXMLTree(nil,xmldoc.Node);
當然要先載入XML文件 J ^_^
至於使用XML文件作為In-memory就要用Delphi6/7的XML Map Tool了,先建立一個最簡單的XML文件,再用MappingTool生成.XTR檔案,用TXMLDataSetProvider作為資料提供者,TdataSet連線,搞個TTable就可以把XML作為資料庫用了,詳細的請看Delphi6/7的Demos目錄下的InteXMLTranormProvider!
-------------------------------------------Power by Liu Yang 2002-2-8
/ by LY or
一個利用XML的例子:LY Explorer中的Site Manager檔案
可以從我的主頁。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991899/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- XML簡明教程(7)什麼是XML文件中的資料型別(轉)XML資料型別
- 用JDOM處理XML文件 (轉)XML
- 資料庫中的XML應用例項 (轉)資料庫XML
- 用Java結合SAX 2.0 解析XML文件 (轉)JavaXML
- XML SOAP應用簡介 (轉)XML
- XML 在 ASP 環境下的應用(轉)XML
- Tomcat 7 中 web 應用載入原理(二)web.xml 解析TomcatWebXML
- Java中Dom解析xml文件JavaXML
- 【PB】powerbuilder中xml的應用一例UIXML
- C# 讀取XML文件 (轉)C#XML
- XML中的DTD文件型別定義XML型別
- Delphi6的新特性[翻譯] (轉)
- XSLT實現XML文件轉換成HTML文件XMLHTML
- xml & xslt的應用XML
- 使用Digester解析XML文件示例 (轉)XML
- XML入門指南(7)XML瀏覽器(轉)XML瀏覽器
- 多模板文件檢視結構的應用 (轉)
- 學習 XSLT:XML文件轉換的關鍵XML
- 號外:Delphi6新特性! (轉)
- 號外:Delphi6 新特性 !!!! (轉)
- SQLServer中XML與JSON應用比較SQLServerXMLJSON
- Delphi 中的字串——《Delphi6 開發人員指南》讀書筆記 (轉)字串筆記
- 華為CMPP原始碼delphi6版 (轉)原始碼
- 一步一步用Delphi6實現Web Service (轉)Web
- sqlserver在JAVA中的應用 (轉)SQLServerJava
- linux中gcc的應用(轉)LinuxGC
- Xml 功能在erp report中應用的模式比較XML模式
- ArkTS 中的 XML 解析與生成:應用開發實戰XML
- mfc中的訊息的應用 (轉)
- [轉]使用 SAX 處理 XML 文件 和與DOM的區別XML
- 基於PHP與XML的PDF文件生成技術(摘要) (轉)PHPXML
- 用VB將WORD文件(或其他的二進位制資料)生成xml檔案並互相轉換 (轉)XML
- SQL Server FOR XML PATH 語句的應用SQLServerXML
- OPENAI API應用文件OpenAIAPI
- 汽車行業的CRM應用(中) (轉)行業
- 動態SQL中DESCRIPTOR的應用 (轉)SQL
- WebSphere Integration Developer V7 中的 XML 對映WebDeveloperXML
- XML 程式設計思想:知識管理的基本 XML 和 RDF 技術(7)(轉)XML程式設計