問題タブ [qtxml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - qt5 qdom xml ノードはいつ削除されますか?
qt5 がいつ DOM ノードのデータを削除するかを理解したいと思います。
私の最初の質問は、ノードが作成されたとき (QDomDocument ファクトリ メソッド)、それが DOM ツリーに配置されていない場合、内部データは削除されますか (または QDomDocument はまだ参照を保持しますか)?
2 番目の質問は、ユーザーがドメイン ツリー内の単一のノードへの参照 (QDomElement など) を保持しているが、他の参照 (QDomDocument など) を保持していない場合、どのノードが保持されるのでしょうか?
- すべての子ノード、親も兄弟もいない?
- すべての子ノード、QDomDocument 以外の親はありませんか?
- QDomDocument のすべてのノード?
- none (QDomDocument への参照を保持していません)
xml - ソース xml ノード テキストにエスケープされた特殊文字が含まれている場合の QDomeNode の解析
Qt DOM xml パーサーを使用しているときに、< を含むノード要素で問題が発生しました。そのテキストで。元の xml は次のようになります。
しかし、パーサーは明らかに < を変換します。と > おそらくQDomDocument::setDocumentが呼び出されたときに、テキストを<と>に変換します。その結果、名前ノードで QDomNode::text() を呼び出すと、予想される "<Beige>1" ではなく "1" として名前が付けられます。
名前ノードの実際のテキストにエスケープされた特殊文字が含まれる可能性があるこの問題を回避する簡単な方法はありますか? できれば、Qt DOM パーサーを引き続き使用できるようにします。
- - 編集 - -
QXmlDefaultHandler に基づく SAX リーダーでテストしたところ、同じ結果が得られました。
QXmlDefaultHandler::characters は Name 要素に対して「1」のみを返します。
c++ - C++/Qt QDomDocument: すべての XML タグを繰り返す
私の問題は、次のように表される大きな XML スタイルのファイルがQDomDocument
あり、XML の複数の場所にある特定のタグにアクセスする必要があることです。
私のXMLは次のようになります
そして、「SizeMod」と「Size」のすべてのオカレンスにアクセスする必要があります。問題は、ファイルのレイアウトが将来定期的に変更される可能性があることです。コードをすべてのバージョンのファイルで動作させたいと考えています。
現時点では、必要な深さに達するまで複数の for ループを使用してすべての childNode を反復処理し、正しいノードにいるかどうかを if ステートメントで確認します。
しかし、それは悪い方法のようです。