お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"MSXMLを使ってみる"

この発言に対し以下のコメントが寄せられています
#01016 貞広 賢三   さん RE:MSXMLを使ってみる

お世話になります。 MARINです。 最近、話題のXMLを使ってみようと思ったのですが、 MicroSoftさんのサイトにはVBのサンプルプログラムしかありません(ーー; http://www.microsoft.com/japan/developer/workshop/default.asp#xml Delphi版も欲しい〜 と思ってやってみました。 COMとかXMLのことがよくわかってないのであれですが(^^; とりあえず、なんとか使えそうな気がしてきました。 <準備> MS Internet Explorer 5 をインストールする Delphiでタイプライブラリーの取り込みを行う(MS XML Version?) と、コンポーネントパレットに5個もコンポーネントが追加されます。 が、DOMDocument以外の使い方はわからないです?? 詳しい方教えてくださーいm(__)m <テストプログラム> 新規のフォームに、 DOMDocument, OpenDialog, SaveDialog, Memo, Buttonを2個貼り付けます。 Button1,2にMicroSoftさんのページにあったサンプルプログラムを割り当ててみ ました。 {DOMツリーの読み込み} procedure TForm1.Button1Click(Sender: TObject); var doc: IXMLDOMDocument; begin doc := DOMDocument1.DefaultInterface; if OpenDialog1.Execute then begin Label1.Caption := OpenDialog1.FileName; doc.async := false; doc.load(OpenDialog1.FileName); Label2.Caption := IntToStr(doc.ReadyState); DisplayNode(doc.childNodes, 0); end; end; procedure TForm1.DisplayNode(Nodes: IXMLDOMNodeList; Indent: integer); var node: IXMLDOMNode; i: integer; begin Indent := Indent + 2; for i := 0 to Nodes.length - 1 do begin node := Nodes.item[i]; if node.nodeType = NODE_ELEMENT then Memo1.Lines.Add( Format('%*S<%S>', [Indent, ' ', node.nodeName])); if node.nodeType = NODE_TEXT then Memo1.Lines.Add( Format('%*S%S: %S', [Indent, ' ', node.parentNode.nodeName, node.nodeValue])); if node.hasChildNodes then DisplayNode(node.childNodes, Indent); end; end; {XMLドキュメントの生成} procedure TForm1.Button2Click(Sender: TObject); var doc: IXMLDOMDocument; root, item: IXMLDOMNode; begin doc := DOMDocument1.DefaultInterface; root := doc.createElement('person'); doc.appendChild(root); item := doc.createElement('name'); item.appendChild(doc.createTextNode('Hiroko Shima')); root.appendChild(item); if SaveDialog1.Execute then doc.save(SaveDialog1.FileName); end; 00/02/08(火) 19:51 MARIN(PXI10376) Original document by MARIN 氏 ID:(PXI10376)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum