問題タブ [pugixml]

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.

0 投票する
1 に答える
130 参照

c++ - C++ PugiXML ベクトル反復子の非互換エラー

PugiXML を使用して XML コードをテクスチャ付きのスプライトに解析するアプリケーションがあります。ただし、ループが開始された直後にforコンパイラがExpression: vector iterators incompatibleループ中に実行時エラーを返し続けるため、この 1 つのループを機能させる際に問題が発生しています。initCollisionObjectどんな助けでも大歓迎です!

forループ:

initCollisionObject関数:

0 投票する
2 に答える
1604 参照

c - PugiXML 値の出力エンコーディング

I am a little confused. pugi::xml_node::value() returns string of type chart_t, which can be either wchar_t or char depends on compilation flags. In documentation to pugiXML said that it works with different types on utf family encodings. OK. I am loading using pugi::xml_document::load_file() a document in uft16 encoding. Then when I am iterating throw nodes and calling value() method on every node, in which encoding I'll get value? Presumably in encoding of my data, which I've loaded to xml_document. This means in utf16. If it in utf16 then I'll can't to work with that value because there will be 0-symbols and I'll can't use strlen, strcpy an so on... I've made such test, but everything works fine. Anybody knows how it works?

0 投票する
2 に答える
10547 参照

c++ - ゼロから xml ツリーを構築する - pugixml C++

まず、Frank Vanden Berghen が作成した XML パーサーを使用しており、最近 Pugixml に移行しようとしています。移行が少し難しいと感じています。ここで助けを得ることを願っています。

質問: pugixml API を使用して、以下の小さな xml のツリーを最初から作成するにはどうすればよいですか? pugixml ホームページの例を調べてみましたが、ほとんどの例はルート ノード値でハード コードされています。私が言いたいのは

ハードコーディングされています。また、xml_document と xml_node のドキュメントについて読んでみましたが、ツリーをゼロから構築する必要がある場合、どのように開始すればよいかわかりませんでした。

XML:

xml を読み取り/解析する方法について投稿されたほとんどの例を見ることができましたが、ゼロから作成する方法を見つけることができませんでした。

0 投票する
1 に答える
978 参照

c++ - エラーのない PugiXML の空のドキュメント

私は次のXMLを持っています:

PugiXML を使用して解析しようとしていますが、読み込み後にドキュメントが空になり、結果の説明にエラーは表示されません。

しかし、それは空のドキュメントです:

出力:

XML は問題ないと思いますよね?

XML は他のアプリによって生成されているため、変更できません。XML に問題がある場合は、XML パーサーを変更する必要がありますか? TinyXML または libxml++ ?

0 投票する
1 に答える
368 参照

c++ - 再帰的なpugixml、値を取得できません

さて、私はコードを手に入れました

そのコードの後、テキストから値を取得できませんが、 like を直接使用します

は働いている。助けが必要。ありがとう。

0 投票する
1 に答える
1107 参照

c++ - pugixmlを使用してプログラムのメモリ消費を解釈する

〜50MBのXMLファイルを解析し、元のXMLファイルへのリンクなしでデータを内部オブジェクト構造に抽出するプログラムがあります。必要なメモリ量を大まかに見積もろうとすると、40MB と計算されます。

しかし、私のプログラムには 350MB 程度が必要で、何が起こるかを調べようとします。私は を使用boost::shared_ptrしているので、生のポインタを扱っていないので、メモリ リークが発生していないことを願っています。

私は自分がしたことを書こうとしていますが、誰かが私のプロセスの問題や間違った仮定などを指摘してくれることを願っています.

まず、どのように測定したのですか?以前htopは、メモリがいっぱいで、コードを使用するプロセスがそのほとんどを使用していることに気付きました。さまざまなスレッドのメモリを合計し、よりきれいな出力を得るために、http://www.pixelbeat.org/scripts/ps_mem.pyを使用しました。

理論上の消費量を大まかに見積もって、消費量と少なくともそれがどうあるべきかの間にどの要因があるかを把握しました。10 です。そこでvalgrind --tool=massifメモリ消費量を分析していました。これは、350MB のピーク時に 250MB がライブラリxml_allocatorに由来するものによって使用されていることを示していpugixmlます。コードのセクションに移動し、 をインスタンス化し、オブジェクトのデストラクタにpugi::xml_documentを入れてstd::cout、プログラムのかなり早い段階でオブジェクトが解放されたことを確認しました (最後に、メモリ消費を測定するのに十分な時間を確保するために 20 秒間スリープします)。 、デストラクタからのコンソール出力が表示された後でも 350MB のままです)。

今、私はそれを解釈する方法がわかりません.誰かが私が間違った仮定をしたり、そのようなことをしたりするのを助けてくれることを願っています.

ここに画像の説明を入力

を使用する最も外側のコード スニペットpugixmlは次のようになります。

そして、私のコードではpugixml要素をどこかに保存していないので (実際の値のみが引き出されます)、doc関数が終了したときにすべてのリソースを解放することを期待しますparseが、グラフを見ると、(時間軸上で) どこにあるのかわかりません。 ) これが起こります。

0 投票する
1 に答える
1629 参照

ios - iOS での xml ファイルの保存 (pugiXml および Cocos2d-x)

最近、pugiXml (cocos2d-x エンジン内で使用) で大きな問題に遭遇しました。

まもなく、クイズ ゲームを作成しました (前述の Cocos2d-x で)。質問 (およびその他のデータ) を Xml ファイルに保存します。新しいゲームでは、それらは解析されて辞書に挿入されます。質問に回答すると、回答を示す短い文字列 (良かったかどうか - Y/N) がその Xml ファイル (その特定の質問の下) に挿入されます。後で、このデータを使用して統計を表示します (私は、Y の数を質問の数で割って 100 を掛けたものを数えて、良い答えのある質問の割合を数えます)。

私が使う:

ファイルを取得して後で

ファイルをバッファに入れ、

データを解析して作業を開始します。

最後に、ファイルを次のように保存します。

アンドロイド:

  • 質問のあるファイルを /data/data/app/Files/ にコピーする必要がありましたが、非常にうまく機能しています。それでも、多くのデバイスで変更を保持しています。

iOS:

  • 残念ながら、iOS では機能しません。データは読み込まれて解析されますが (つまり、実際にゲームをプレイできます)、保存されません。ファイルを他のフォルダーに移動しようとしました (Resources/Documents から開始し、メインの Resources フォルダー、Resources/Library/Application Support)。まだデータが保存されておらず、どうすればよいかわかりません。その結果、統計がうまくカウントされません (質問にどのように答えても問題ありません。Xml ファイルが更新されていないため、質問はすべて誤りです)。

誰かが同様の問題に遭遇しましたか?手伝ってくれませんか?

0 投票する
3 に答える
1751 参照

c++ - C ++ Pugixmlは、属性IDで親の子を取得します

例えば:

ID 1 のレベルのデータを取得するにはどうすればよいですか? 今私は使用してpugi::xml_node level = levels.child("level")いますが、それはすべてのレベルを返します..

よろしく、 GJJ

0 投票する
0 に答える
596 参照

c++ - pugixml を使用した EOF での Cygwin g++ コンパイラの内部エラー (セグメンテーション違反)

これは、問題を再現するための最小限のコードです。唯一の外部前提条件は pugixml.hpp ファイルです。

コンテキストは、XML ファイル内の ID 参照を解決するためのクラスです (つまり、文字列値が与えられた場合、id 属性がその値に設定されているノードを見つけます)。pugixml API をラップするヘルパー クラスがいくつかあります。関連する部分は次のとおりです。

Agent.h

IDリゾルバークラスの私の最初の実装はこれでした

IdNodeSet-ああ

これにより、Cygwin g++ 3.4.4 で次のエラーが発生しました (cygming スペシャル、gdc 0.12、dmd 0.125 を使用):

これは完全に不可解です。

私に起こる唯一のことは、コンストラクターで「* this」を使用することです。ただし、代わりにヘルパー メンバー クラスを使用した変更:

IDNodeSet-Bh

同じエラーが発生します:

これはロケット サイエンス コードではありません。では、何がコンパイラのコア ダンプを引き起こしているのでしょうか?

更新: プリプロセッサの出力 (つまり g++ -E から) は、どちらの場合も問題なくコンパイルされます。したがって、これは可能な回避策として認められますが、問題は残ります。回避策が実行できない状況では、どのような種類のコードを避けるべきでしょうか?