XML コンポーネントを使用してアプリケーションを構築する

提供: RAD Studio
移動先: 案内検索

VCL フォーム アプリケーションの作成方法 への移動


この例では、XMLDocument コンポーネントを使って XML ファイルの内容を表示する VCL フォーム アプリケーションを作成します。

主な手順は次のとおりです。

  1. XML ドキュメントを作成する。
  2. VCL フォームを作成する。
  3. XMLDocument コンポーネントをフォームに配置し、XML ファイルと関連付ける。
  4. XML ファイルの内容を表示するための VCL コンポーネントを作成する。
  5. XML 子ノードの内容を表示するためのイベント ハンドラを記述する。
  6. アプリケーションをコンパイルして実行する。

XML ドキュメントを作成するには:

  1. テキスト エディタで、次のテキストをファイルにコピーします。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE StockHoldings [
	<!ELEMENT StockHoldings (Stock+)>
	<!ELEMENT Stock (name)>
	<!ELEMENT Stock (price)>
	<!ELEMENT Stock (symbol)>
	<!ELEMENT Stock (shares)>
]>

<StockHoldings>
  <Stock exchange="NASDAQ">
    <name>MyAppDevCo</name>
    <price>10.375</price>
    <symbol>MADCO</symbol>
    <shares>100</shares>
  </Stock>

  <Stock exchange="NYSE">
    <name>MyCompany</name>
    <price>8.75</price>
    <symbol>MYCO</symbol>
    <shares type="preferred">25</shares>
  </Stock>
</StockHoldings>
  1. ファイルを XML ドキュメントとしてローカル ドライブに保存します。ファイルには stock.xml などの名前を付けます。
  2. ブラウザでドキュメントを開きます。内容がエラーなく表示されるはずです。

メモ: ブラウザで [表示|ソース]などを選択すると、ソース ファイルがテキスト エディタに表示されます。

XMLDocument コンポーネントを持つフォームを作成するには:

  1. [ファイル|新規作成|その他...]の[Delphi プロジェクト]または[C++Builder プロジェクト]を選択し、[VCL フォーム アプリケーション]アイコンをダブルクリックします。VCL フォーム デザイナが表示されます。
  2. [ツール パレット][Internet]ページから、[TXMLDocument]コンポーネントをフォームに配置します。
  3. [オブジェクト インスペクタ]で、FileName プロパティの隣にある省略記号([...])ボタンをクリックし、作成した XML ファイルの場所を参照してファイルを開きます。これで XML ファイルが TXMLDocument コンポーネントと関連付けられます。
  4. [オブジェクト インスペクタ]で Active プロパティを True に設定します。

VCL コンポーネントをセットアップするには:

  1. [ツール パレット][Standard]ページから、[TMemo]コンポーネントをフォームに配置します。
  2. [ツール パレット][Standard]ページから、[TButton]コンポーネントを 2 つ、フォームの Memo1 のすぐ上に配置します。
  3. Button1 を選択し、[オブジェクト インスペクタ]で Caption プロパティに「MyAppDevCo」と入力します。
  4. Button2 を選択し、[オブジェクト インスペクタ]で Caption プロパティに「MyCompany」と入力します。

XML ファイルの子ノードの内容を表示するには:

  1. Button1 を選択し、[オブジェクト インスペクタ][イベント]タブの OnClick イベントをダブルクリックします。[コード]が開き、TForm1.Button1Click イベント ハンドラ ブロックにカーソルが置かれます。
  2. 以下のコードを入力します。このコードでは、[MyAppDevCo]ボタンがクリックされたときに最初の子ノードの株価を表示します。
  MyAppDevCoStock:=XMLDocument1.DocumentElement.ChildNodes[0];
  Price:= MyAppDevCoStock.ChildNodes['price'].Text;
  Memo1.Text := Price; 
C++ の場合は以下のとおりです。
IXMLNode *MyAppDevCoStock = XMLDocument1->DocumentElement->
			ChildNodes->GetNode(0);
WideString Price = MyAppDevCoStock->ChildNodes->
			FindNode( "price" )->Text;
Memo1->Text = Price;
  1. Delphi の場合、イベント ハンドラのコード ブロックのすぐ上に var セクションを追加し、以下のローカル変数宣言を入力します。 var MyAppDevCoStock: IXMLNode; Price: string;
  2. Button2 を選択し、[オブジェクト インスペクタ][イベント]タブの OnClick イベントをダブルクリックします。[コード]が開き、TForm1.Button2Click イベント ハンドラ ブロックにカーソルが置かれます。
  3. 以下のコードを入力します。このコードでは、[MyCompany]ボタンがクリックされたときに 2 番目の子ノードの株価を表示します。
  4.   MyCompany:=XMLDocument1.DocumentElement.ChildNodes[1];
      Price:= MyCompany.ChildNodes['price'].Text;
      Memo1.Text := Price;
    
    C++ の場合は以下のとおりです。
    IXMLNode *MyCompany = XMLDocument1->DocumentElement
    		->ChildNodes->GetNode(1);
    WideString Price = MyAppDevCoStock->ChildNodes
    		->FindNode( "price" )->Text;
    Memo1->Text = Price;
    
  5. Delphi の場合、イベント ハンドラのコード ブロックのすぐ上に var セクションを追加し、以下のローカル変数宣言を入力します。
var
  MyCompany: IXMLNode;
  Price: string;

アプリケーションをコンパイルして実行するには:

  1. [実行|実行] を選択して、アプリケーションをコンパイルし実行します。アプリケーション フォームに 2 つのボタンと 1 つのメモが表示されます。
  2. [MyAppDevCo]ボタンをクリックします。株価が表示されます。
  3. [MyCompany]ボタンをクリックします。株価が表示されます。

関連項目