1

TinyXMLを使用して XML ファイルからそれぞれの値を読み取る一連のクラスがあります。

これを行ったので、すべてがメモリ内にあり、ユーザーはアプリを使用して変更を加えています。ユーザーが [保存] を押した場合、オブジェクトを繰り返し処理し、XML ファイルを書き出す Save() 関数を呼び出す必要があります。XML ファイルをプログラムでゼロから再構築して書き出す必要がありますか? またはTiXmlHandle、ファイルの読み取りに使用したものと同じものを使用し、それを変更してから書き戻す必要がありますか? そうすれば、元の順序が維持されます。XML を再作成すると、元の順序が変更されます。

ユーザーが手動で XML を変更できるようにしたいので、手動で変更して、保存時に再シャッフルするだけではおかしいと思います。オプションを正しく理解していますか?

これまで TinyXML や XML を使用したことがありませんでした。

4

2 に答える 2

1

この最初の部分は、あなたの質問に対する直接の答えではありませんが、「これまでXMLを使用したことがない」という文を続けます。最近のコンピューティングではXMLが普及しているため、XMLがどのように機能するかを理解するために時間を費やす価値があります。簡単に参照できるように、HaroldandMeansによる「XMLinaNutshell」をお勧めします。XML、スキーマ(着信XMLがどのように見えるかを正確に定義する)、XPath(ノードをナビゲートして目的のデータに到達する方法)、XQuery、XSLT、名前空間などについて説明します。

本当に役立つのは概念です。そのためには、別の本が必要になる場合があります(申し訳ありませんが、推奨する本はありません)。XMLを正しい方法で使用する必要がある理由を理解することが重要です。栄光の.INIファイルと考えてください。DOMの概念が普及している理由。SAXを使うべきかどうか。

おそらく、学ぶべき最も関連性のあることはXMLスキーマ(XSD)です。やり過ぎのように見えることもありますが、スキーマに対してXMLを検証することを強く検討する必要があります(xercesなどの完全なXMLパーサーへの1つのメソッド呼び出しです)。これは2009年であり、プログラムは次のコンピューターで実行されています。たくさんのメモリがあり、そのほとんどを本当に、本当に速く実行できます。ですから、あなたのデータが良いことを知ることは完全に価値があります。そして、スキーマを理解したら、それらをバージョン管理する方法を学ぶことをお勧めします。これは、プログラムストレージを扱う場合に特に重要です。これにより、プログラムに以前のバージョンの保存済みファイルを認識させ、それらを自動的に使用またはアップグレードできるようになります。

差し迫った質問に直接答えるには、TinyXML(または選択したパーサー)を使用して記述します。すでにツールを手元に置いている場合は、出力ホイールを作り直さないでください。

于 2009-11-24T03:27:01.020 に答える
1

XML入力を読み取ったら、読み取りハンドルを破棄します。

それらを書き戻すには、通常、親またはメインのドキュメントタイプオブジェクトにwriteXML()メソッドを設定し、次にデザインの各オブジェクトでwriteXML()メソッドを呼び出します。

ps。異なるXML読み取りおよび書き込みライブラリがあることは珍しいことではありません。
pps。オブジェクト階層から強制できないXMlドキュメントの順序が心配な場合は、基本的な設計が間違っています。

于 2009-11-24T02:44:22.307 に答える