XMLインタフェース動作

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'; //给你加薪
    終了。
  終わり; 
終わり; 
終わり。

  

おすすめ

転載: www.cnblogs.com/hnxxcxg/p/11203443.html