-2

XMLDocumentオブジェクトにロードされるXMLファイルがあります。XMLファイルには多くの<tour>ノードがあります。ナビゲーションコントロールを使用して<ツアー>ノードをナビゲートする機能を備えたWindowsフォームに<ツアー>ノードのコンテンツを表示したいと思います。これどうやってするの?

情報が表示されるフォームを次のように表示したいと思います。

形

以下は、XMLファイルのサンプルです。

<?xml version="1.0" ?>
<tours>
   <tour>
      <description>
      <![CDATA[
<p><i>Travel Scotland!</i> goes south to England blah blah...</p>
  ]]>
  </description>
  <tour_name>The Lake District</tour_name>
  <tour_photo>Lake.jpg</tour_photo>
  <tour_guide>Mary Taylor</tour_guide>
  <td_email>mailto:mtaylor@tscotland.com</td_email>
  <tour_start>6/15/2003</tour_start>
  <tour_end>6/19/2003</tour_end>
  <itinerary>
     <day>
        <day_number>1</day_number>
        <plan>London arrival</plan>
     </day>
     <day>
        <day_number>2</day_number>
        <plan>Train to Windemere</plan>
     </day>
     <day>
        <day_number>3</day_number>
        <plan>Second day in Windemere</plan>
     </day>
     <day>
        <day_number>4</day_number>
        <plan>Trip to Ambleside</plan>
     </day>
     <day>
        <day_number>5</day_number>
        <plan>Hiking tour to Grasmere</plan>
     </day>
  </itinerary>   
</tour>
<tour> ANOTHER TOUR ETC.
4

1 に答える 1

0

XMLDocument オブジェクトの詳細はわかりませんが、疑似コードで言えば、次のようにする必要があります。

ノードを反復処理し<tour>、情報をカスタム定義構造の配列にロードします。例えば

    struct tour{
        String description;
        String tourname;
        String tourimagelink;
        ...
    }

次に、配列の各要素を繰り返し処理し、エントリごとに Windows フォーム コントロールを作成する必要があります (ドッキング パネルなど内にあることが望ましいため、スクロールできます)。Y 軸のオフセットについては、情報ブロックの高さを把握する必要があります。for ループを使用して要素を反復処理する場合は、次のような式が役立ちます。

    y = (i*blockHeight) + offsetOfControl;

これが何らかの点で役立つことを願っています。

編集:さらに良い-構造体を使用する代わりに、すべての Windows フォームコントロールを公開するクラスを使用して、それらをメインフォームにアタッチできるようにすることができます。

于 2012-12-11T21:42:14.500 に答える