XMLインタフェース動作
。以下代码旨在脱离にTXMLDocument操作XML ユニット3号機。 インタフェースが 使用する Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、 ダイアログ、XMLDOM、XMLIntf、msxmldom、XMLDOC、StdCtrls; 入力 TForm3 =クラス(TFormは) XMLDocument1:にTXMLDocumentと、 ボタン1:TButtonの。 ボタン2:TButtonの。 ボタン3:TButtonの。 ボタン4:TButtonの。 ボタン5:TButtonの。 Button6:TButtonの。 MEMO1:TMemoオブジェクト。 手続きButton1Click(送信者:TObjectを); 手順Button2Click(送信者:TObjectを); 手順Button3Click(送信者:TObjectを); プライベート 、パブリック 終了。 VAR たForm3:TForm3; 実装は ENGを使用しています。 {R&LT *の$} DFM。 手順TForm3.Button1Click(送信者:TObjectを); VARのXML:IXMLDocument;ルート、ノード、データ:IXMLNode; I:整数; // NT:TNodeType; 始めます / /最初の中国バージョンへ のxml:= NewXMLDocument; //デフォルト1.0 xml.Options:= xml.Options + [doNodeAutoIndent]; //インデントではなく、全てのラインで xml.Encoding:= '2312'; //中国のサポート xml.DocumentElementを:= xml.CreateNode(「ルート」); //表しntElementノード //同じ意味を、ルートノードのみ含めることができます 。// xml.AddChild(「ルートを」); //名前空間URIは、私が理解して、名前空間のパスアドレスで、コントロールしていない ; = xml.DocumentElement:ルート root.Attributes [「説明」]:=「どのようにTXMLDocument制御動作XMLファイルを行います」; root.Attributes [ '著作権']:= 'すべての所有DuoSoft'; root.Attributesは、[ 'I']:=「ここでは、iの値を示します「; I:= root.AttributeNodes.IndexOf( '著作権'); I <> -1 IFそして インクルードが始まる root.AttributeNodesを[I]の.text:= 'それはすべての人が所有しています'; root.AttributeNodesが.NodeValue [I + 1] := I; END; ノード:= xml.createElement_x_x_x( 'タグ1'、 ''); node.Attributes [ 'DESC']:= ''ノードを追加する方法の第一のタイプ; root.ChildNodes.Add(ノード) ノード:= xml.CreateNode( 'タグ2'); node.Attributes [ 'DESC']:= 'ノードを追加する第二種の方法'; root.ChildNodes.Add(ノード); root.AddChild( 'TAG3')属性[。 'DESC']:= 'ノードを追加する第3の方法'; ノード:= xml.CreateNode( '備考'、ntCData); Node.text:= '1234'; // NOTE - > 1234 root.ChildNodes.Add(ノード)。 終わり; } node.NodeValue:= 5678; // NOTE - > 5678 root.ChildNodes.Add(ノード); {NT用:DO = ntReserved ntNotationに 始まり 、私は:=オード(NT); トライ ノード:= xml.CreateNode(「タイプ'+ IntToStr(I)、NT); node.Attributes [' DESC ']:='タイプ'+ IntToStr(I); root.ChildNodes.Add(ノード); 除く // node.Attributes [' DESC「]: = '失敗' + IntToStr(I); その後、//研究その意義★★★★★★★★★★★★★後 // TNodeType =(ntReserved、ntElement、ntAttribute、ntText、ntCData、 // ntEntityRef、ntEntity 、ntProcessingInstr、ntComment、ntDocument、 // ntDocType、ntDocFragment、ntNotation); END; データ:= root.AddChild( '数据清单')。 data.AddChild( 'レコード')を用いて行う 始まる 属性[ 'ID']:= 1。 属性[ '名前']:= '张三'; 属性[ 'セックス']:=真; 属性[ '給与']:= 12.34。 終わり; data.AddChild( 'レコード')を用いて行う 始まる 属性[ 'ID']:= 2; 属性[ '名前']:= '李四'; 属性[ 'セックス']:=真; 属性[ '給与']:= 5678; 終わり; data.AddChild( 'レコード')を用いて行う 始まる 属性[ 'ID']:= 3; 属性[ '名前']:= '王五'; 属性[ 'セックス']:= falseは、 属性[ '給与']:= -90.1234。 終わり; ノード:= root.AddChild( '备注')。 node.Attributes [ '年']:= 2010; node.Attributes [ '1月']:= 7; node.Attributes [ '日付']:= 12; Node.text:= 'ミニテーブルを確立します'; // node.NodeName:= 'のNodeName'; // 変更することはできません // node.NodeValue:= 'のnodeValue'; // = Node.text //次のコードは楽しいです!!!必ずしも一緒に行くために組み合わせる 。node.ChildNodes.Add(xml.CreateNode( 'ntTextを追加するには、'、ntText)) I:= node.AttributeNodes.Add(xml.CreateNode( '時間'、ntAttribute)); ノードが。 AttributeNodes [I] .NodeValue:= 16; node.AttributeNodes.Add(xml.CreateNode( '点'、ntAttribute)); node.Attributes [ '点']:= 12であり; // node.AttributeNodes.Add(XML。 CreateNode( '第2'、XXXX)); //他のタイプntElement ntText ntCommentのサポートしていない // ntElement ntText ntComment他の種類をサポートしていない=」秒以上:// node.Attributes [ 's'を]?「; XMLを。SaveToFileメソッド(ExtractFilePath(ParamStr(0))+ 'chn.xml')。 { )+ 'chn.xml'); 結果である <XMLバージョン= "1.0"エンコード= "2312" ??> - <ルートの説明=「どのようにTXMLDocumentコントロールは、XMLを操作しません"著作権="誰もが所有しているすべての権利、 "I =" 1 "> <TAG1のDESC ="ノードのメソッドを追加する1種"/> ノードのメソッドを追加するには、<タグ2 DESC =" 2つの方法"/> <TAG3 DESC ="最初の「/>ノードの三種類の添加方法 - <データリスト> 1「NAME =」ジョン・ドウ「セックス=」真の「給与=」12.34「/> <レコードID =」 <レコードID =」2「NAME =」ジョン・ドウ"セックス=" trueに"給与は=" 5678 "/> 。90.1234「/> - <レコードID =" 3 "NAME ="王呉falseに"セックスは=" "給与=" > </データリストを <NOTE年= "2010"月= "7"日= "12" = "16"ポイント= "12"> ntText </注釈>追加するミニテーブルを作成します 。</ルート> } 終了し、 手順TForm3.Button2Click(送信者:TObjectを); VARのXML:IXMLDocument;ルート、ノード、データ:IXMLNode; 開始 始まります 英語に製剤に//ノードインタフェースを XML:= NewXMLDocument; //デフォルト1.0 xml.Options:= xml.Options + [doNodeAutoIndent] ; // インデントではなく、ライン内のすべての xml.Encoding:= '2312'; //中国の支援 ルート:= xml.AddChild( 'DuoXMLRoot'); ルート.Attributes [ 'DESC']:= ' どのようにTXMLDocumentは動作XMLファイルを制御します'; root.Attributes [ '右']は:= 'DuoSoftすべてを所有していた'; ノード:= xml.createElement_x_x_x( 'TAG1'、 ''); node.Attributes [ 'DESC']:= ' ノードを追加する方法の第一のタイプ'; root.ChildNodes.Add(ノード) ノード:= xml.CreateNode( 'タグ2'); node.Attributes [ 'DESC']:= 「第二のタイプの方法は、ノードを追加」; root.ChildNodes.Add(ノード); root.AddChild(」TAG3「)属性[「DESC」]:= 『;.』ノードを追加する第3の方法 データ:= root.AddChild ( 'のMyData')。//この名前、その他が使用されることに留意されたい data.AddChild(「記録」)を用いて行う 属性[ 'ID']:= 1; 属性[ '名前']:= '张三'; 属性[ 'セックス']:=真; 属性[ '給与']:= 12.34。 終わり; data.AddChild( 'レコード')を用いて行う 始まる 属性[ 'ID']:= 2; 属性[ '名前']:= '李四'; 属性[ 'セックス']:=真; 属性[ '給与']:= 5678; 終わり; data.AddChild( 'レコード')を用いて行う 始まる 属性[ 'ID']:= 3; 属性[ '名前']:= '王五'; 属性[ 'セックス']:= falseは、 属性[ '給与']:= -90.1234。 終わり; ノード:= root.AddChild( 'メモ'); node.Attributes [ 'YY']:= 2010; ノード。 node.Attributes [ 'DD']:= 12; node.Text:= 'ミニテーブルを確立'; xml.SaveToFile(ExtractFilePath(ParamStr(0))+ 'eng.xml'); END; だけでなく、次のeng.xmlにTXMLDocumentを見ている必要があります XMLDocument1.FileName選択eng.xmlは、 二重のウィザードを開くには、クリックした 最初のノードを選択し、第2のノードを選択します。 上の文書エレメントタイプフック 次の仕上げは eng.pasを生成し てくる使用し 、次のコードを次のとおりです。インターフェースの操作の概念を直接使用するだけでXMLを我々が生成する 手順TForm3.Button3Click(送信者:TObjectを); VARのDD:IXMLDuoXMLRootType; Iを:整数; 始める DD:= LoadDuoXMLRoot(ExtractFilePath(ParamStr(0))+ 'eng.xml'); dd.OwnerDocument.Options:= dd.OwnerDocument.Options + [doAutoSave]; //長い変形が自動的に保存される MEMO1を。クリア。 iについて:= dd.MyData.Countに0から1にはない 始まり Memo1.Lines.Add( '=================' + inttostr(I)+ '=================' ); Memo1.Lines.Add(IntToStr(dd.MyData [I] .ID))。 Memo1.Lines.Add([I] .nameのdd.MyData)。 Memo1.Lines.Add([I] .Sex dd.MyData)。 Memo1.Lines.Add([I] .Salary dd.MyData)。 dd.MyDataなら[I] .ID = dd.MyData.Count次いで 始める ShowMessage( '改变最后一个值を'); dd.MyData [i]は.Salaryを:= '123456789.0'; //给你加薪 終了。 終わり; 終わり; 終わり。