0

作業中のプロジェクトにXML解析を追加するつもりです。これには、ソフトウェアが設定をロードして保存できるだけでなく、必要に応じて関数を呼び出すことができるようにする必要があります。

設定の読み込みと保存は問題ではないことがわかりますが、トリガーする必要のある非同期イベントは、少し注意が必要な場合があります。

アプリケーションはリモートで駆動され、再生の開始などのイベントをトリガーする必要があります。これは、XMLを使用して実行する必要があります。

これを行う方法の1つを以下に示します。各要素について、XMLには設定とシグナルが含まれます。ロードと保存には、信号は必要ありません。設定だけが必要です。ただし、信号を呼び出す必要がある場合は、その値が1に設定され、クロックが切り替えられます。

<SomeElement>
  <Settings>
    <setting1 value="1"/>
    <setting2 value="2"/>
  </Settings>
  <Signals>
    <clock value="0"/>
    <Signal1 value="1"/>
  </Signals>
</SomeElement>

これはこれを達成するための合理的な方法のように見えますか、それとも私が気付いていないより簡単でより良い方法がありますか?

現在、XMLパーサーとしてpugixmlを使用する予定ですが、その周りにラッパーを作成する可能性があります。

ご協力いただきありがとうございます

4

1 に答える 1

0

まず第一に、上記で提供した「XML」は、設定とシグナルがプレーンテキストとして扱われない限り、実際には有効なXMLではありません。それ以外の場合は、次のようなものを使用する必要があります。

<Settings>
    <setting name="setting1" value="1" />
    <setting name="setting2" vakue="2" />
</Settings>

また、XMLファイルの要素を特定の順序で読み取る必要がある場合は、XMLについて話しているのではなく、XMLのように見えるプレーンテキストです。XML標準では、要素を同じ順序で配信する必要があります。ファイル内にあります(レベル構造のみが保持されます)。したがって、「setting1」の前に「setting2」を読み、「clock」の前に「signal」を読んでください。特定の順序を維持するには、並べ替え可能な「並べ替え」属性を使用する必要があります。

私がすることは、ある種の「アクションリスト」を作成することです。これは、実行することのリスト(設定を設定するか、アクションを開始する)であり、XMLファイルを解析してこのリストに入力します。次に、リストを繰り返し処理して、アクションで指示されていることを実行します。

ただし、これを「C ++でXMLから関数を呼び出す」というタイトルを付けることはできません(XMLはプログラムの実行方法で「実行」できるものではないため、これは不可能です)。

于 2013-01-02T11:38:32.763 に答える