問題タブ [rapidxml]

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 投票する
3 に答える
2049 参照

g++ - Linuxでg ++を使用してrapidxmlをコンパイルします

次の単純なプログラムは、gcc 4.4.3 ではコンパイルできません。

コンパイルすると次のエラーが発生します。

私が間違っていることは何ですか?

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

c++ - RapidXML XML 解析エラー

非常に単純な XML ファイルを解析しています。

そして、デフォルト設定、つまり parse<0>() を使用して解析すると、次のようになります。

すべてのノードは正しい場所にあり、xml_node.value_size() または xml_node.name_size() を使用してクエリを実行すると正しい長さになりますが、実際には名前または値を文字列に取得したり、単に printf() を取得したりすると、多くの値が返されます。次のようなもの:

他の誰かがこれに遭遇しましたか?

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

c++ - C++を使用してRapidxmlのタグでxml値を取得する方法はありますか

c++を使用してrapidxmlでタグ名によってタグの値を取得する方法はありますか

簿価、つまり例と簿価を取得する必要があります....このget firstnodeとnextnodeを使用できdoc.first_node()->value() ますが、次のような値を取得する方法があります。get by name

答え

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

c++ - RapidXml はスレッドセーフですか?

RapidXmlのドキュメントには、

プールは、RAPIDXML_STATIC_POOL_SIZE バイトの静的に割り当てられたメモリを維持します。静的メモリが使い果たされるまで、動的メモリ割り当ては行われません。静的メモリが使い果たされると、プールは、グローバルな new[] および delete[] 演算子を使用して、サイズ RAPIDXML_DYNAMIC_POOL_SIZE のメモリの追加ブロックをそれぞれ割り当てます

私はこれを次のように解釈します: RapidXML はグローバル メモリ プールを使用します。グローバル メモリ プール スレッドに対する操作は安全ですか? つまり、スレッド化の問題を考慮せずに、プログラム全体で RapidXML パーサーの複数のインスタンスを使用できますか?

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

c++ - Rapidxml と UTF8

RapidXML を使用していますが、文字列を UTF8 として記述する必要があります。Rapidxml のマニュアルでは UTF8 をサポートしていると説明されています。

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

c++ - RapidXMLノードに属性として数値(double / float)を追加します

私はRapidXMLにかなり慣れていません。Xmlドキュメントを作成してファイルに出力したいと思います。すべてが機能しますが、プロセスの一部を正しく実行しているかどうかはわかりません。

doubleであるノードに属性を追加します。

私はstdc++のものを使用しています:

もっとエレガンス/速い方法はありますか?(ウィッシュフルシンキング)のようなもの:

大量のdoubleをxmlファイルに保存する必要があるため、ここでの主な関心事はパフォーマンスです。

こんにちは、オリバー

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

c++ - RapidXmlのメモリ割り当てを理解しようとしています

私はC++プログラムでRapidXmlを使用しています。大丈夫、問題ありません。変数値の代わりにポインターを使用しなければならない理由がわかりません...RapidXmlwikiページを見ると、いくつかの例が提供されています。これは、RapidXml開発者によって提供されたものです。

さて、なぜそれはxml_nodeへのポインタを使用するのですか?

xml_nodeを返す関数が必要なので、これを尋ねます...

だから私がこれを行うと:

xml_node <> * mynode = ... return * mynode;

大丈夫ですか??返されたノードとそのすべての子を後で使用したいからです。このようにするのは良いことですか?そうでない場合は、どうすればよいですか?

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

c++ - 文字列を使用して C++ の RapidXml を使用して xml_document に新しいノードを挿入する方法は?

RapidXml を使用して、src2 のノードを src のツリー内に追加したい:

まあ、それは素晴らしいコンパイルですが、実行すると、この恐ろしいエラーが発生しました:

void rapidxml::xml_node::append_node(rapidxml::xml_node*) [with Ch = char]: アサーション `child && !child->parent() && child->type() != node_document' が失敗しました。中止しました

どうすればいいのかわからない。問題は単純です。ノードをツリー (xml) に追加する必要がありますが、文字列があります。

これは、ツリーのノードを別のツリーに挿入しようとしているために発生すると思います...特定のツリーに割り当てられたノードのみをそのツリーに追加できます...これはひどいです...

必要なことを簡単な方法で行う方法はありますか?

ありがとうございました。

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

c++ - Rapidxml が Visual Studio 2010 でコンパイルされません。何が間違っていますか?

コードベースで XML パーサーを TinyXml から RapidXml に切り替える作業を行っています。

ただし、RapidXml は Visual Studio 2010 ではコンパイルできないようです。

基本的に、私がやっているヘッダーファイルで

そして実装では

コードの 2 行目で、Visual Studio は次のように述べています。

c:\users\name\development\rapidxml\rapidxml.hpp(420): エラー C2061: 構文エラー: 識別子 'メモリ'
1> c:\users\name\development\rapidxml\rapidxml.hpp(418): コンパイル中クラス テンプレート メンバー関数 'rapidxml::xml_node<> *rapidxml::memory_pool::allocate_node(rapidxml::node_type,const Ch *,const Ch *,size_t,size_t)'
1> with
1> [
1> Ch=char
1 > ]
1> c:\users\name\development\rapidxml\rapidxml.hpp(1359) : クラス テンプレートのインスタンス化 'rapidxml::memory_pool' への参照を参照してください
1> with
1> [
1> Ch=char
1> ]
1> c:\users\name\development\xmlresource.cpp(70) : コンパイル中のクラス テンプレート インスタンス化 'rapidxml::xml_document<>' への参照を参照してください

長いコーディングの 1 日が終わり、今日はこれで終わりです。そこにいる知識豊富な人々は、私がここで間違っていることを知っていますか?

0 投票する
4 に答える
1031 参照

c++ - 奇妙なコードブレークがMSVCに組み込まれています。どういう意味ですか?

現在のプロジェクトにrapidxmlを含めようとしています。ただし、ビルドされません。

Visual Studioは、このコード(rapidxml.hpp:419 + 451)について文句を言います。

コンパイラは言うでしょう

Rapidxml.hpp(420):エラーC2061:構文エラー:識別子'メモリ'

そして、これがコンパイラをどのように混乱させるかを私はちょっと見ています。それは実際私もかなり混乱させます。(memory)そこで行うことの一部は何new(memory) xml_attribute<Ch>ですか?

その(memory)部分を削除すると、正常にコンパイルされます。
また、gccは(memory)includedを使用して問題なくコンパイルします。

編集:
ああ、そして私はいくつかのメモリデバッグを行うために過負荷newになりました。newの配置はサポートされていません。DEBUG_NEWDEBUG_NEW