0

libxml2.so を使用して、LINUX プラットフォームの C で XML ファイルを解析しています。以下に示すような形式の XML があります。ファイルにはいくつでもアカウントを含めることができます。誰かがフォーラムで私を提案した後、私は初めて libxml を使用しています。アカウントが 1 つしかないファイルを解析できます。複数のアカウントを持っている場合、どのように実装すればよいかわかりません。LinuxのC、libxmlで以前にそのようなことを実装した人はいます。

<ACCOUNT>
  <ACCOUNT_NO> 123 </ACCOUNT_NO>
  <NAME> XYZ </XYZ>
  <STATE> GA </STATE>
</ACCOUNT>

<ACCOUNT>
  <ACCOUNT_NO> 223 </ACCOUNT_NO>
  <NAME> ABC </XYZ>
  <STATE> FL </STATE>
</ACCOUNT>
4

1 に答える 1

1

XML 定義に従って、より多くの < ACCOUNT> がある場合は、すべての < ACCOUNT> タグを < ACCOUNTS> タグで囲む必要があります。

それがある場合は、子に「入る」ことができ、->next ノードで while() を実行できます。

EDITH: DOM モデルを使用していると思います。しかし、多くの (!) < ACCOUNT> がある場合は、メモリ上の理由から SAX に切り替える必要があります。DOM は、メモリ内の (O) オブジェクトへの (D) ドキュメントの完全な (M) マッピングを構築します。

SAX では、開始タグと終了タグおよびデータごとに、ファイル/メモリの読み取り中にトリガーされるステート マシンを構築します。

編集 2: 特別な値を見つける必要がある場合は、キー値 (account_no?) を < ACCOUNT no="123"> < NAME>< XYZ> < STATE>FL< /STATE> のような属性に入れることを検討する必要があります< /アカウント>

于 2012-05-24T16:17:03.507 に答える