問題タブ [boost-propertytree]
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.
c++ - ブースト プロパティ ツリーの put/get DBL_MAX
ptree をプログラミングしていて、ある時点で DBL_MAX を (デフォルト値として) 入れる必要があります。生成された xml ファイルを開くと、正しい番号が表示されます。
しかし、ptree.get を使用して番号を取得すると、例外がスローされます。conversion of data to type "d" failed
これが私のコードです:
このエラーの原因と解決方法を教えてください。
c++ - ブースト プロパティ ツリーにデータを追加する
XML に格納された単純なツリー構造がboost::property_tree::ptree
あり、情報を読み取って抽出するために使用します。std::maps
次に、葉にデータを格納できるように、 を使用してツリーを再作成します。これはうまく機能し、データから固定ツリー構造を分離するのが好きですが、多くのコードを複製していると感じており、ptree の各リーフ ノードにクラスを追加できれば、コードを大幅に簡素化できると思います。
少し複雑になる可能性があるboost::variant
ため、葉に保存したいクラスで使用しています。
私の主な質問は、動的データを ptree に追加しようとすべきかということです。次に、そうであれば、それを追加する最良の方法について何か提案はありますか。
c++ - ブースト プロパティ ツリーを使用した JSON の解析
themoviedb.com から映画情報を取得するアプリケーションを作成しています。情報は JSON ファイルで提供されます。ブースト プロパティ ツリーを使用して情報を保存しようとしています。しかし、少し問題があります。
次のコードで問題を説明します。
しかし、これを実行すると、次の出力が得られます。
私が間違っていることを誰かが知っていますか?BOOST_FOREACH コードにあると思います。
PS: LLVM GCC 4.2 コンパイラで Xcode 4.5.2 を使用します。
c++ - Boost を使用した XML 属性の解析
Boost ライブラリ (バージョン 1.52.0) を使用して C++ の XML 要素からいくつかの属性を処理しようとしているときに発生した問題を共有したいと思います。次のコードがあるとします。
次の XML 構造があるとします。
したがって、取得するコンソール出力は次のようになります。
ただし、ルート ノードから下にあるすべての要素に共通の構造を使用することにした場合 (特定の属性からそれらを識別するため)、結果は完全に変わります。このような場合、これは XML ファイルである可能性があります。
出力は次のようになります。
3 つの属性セットが出力されているため、ルート ノードからぶら下がっている要素の数が適切に認識されているようです。それにもかかわらず、それらはすべて最初の要素の属性を参照しています...
私は C++ の専門家ではなく、Boost を初めて使用するので、ハッシュ マッピング処理などに関して欠けているものがあるかもしれません。アドバイスをいただければ幸いです。
c++ - boost::property_tree で XML 構造を反復処理する方法
次の行に沿った XML 構造があります。
これは に読み込まれます。1..多くboost::property_tree
のがあり、その要素内の任意の深さに 1..多くの が存在する可能性があります <SomeElement>
<ElementIWant>
<ElementIWant>
ドキュメントに表示される順序で直接 (単一のループで)反復処理する方法はありますか?
equal_range を見てきました
ただし、ノードを返すのに失敗しているようです (equal_range が提供されたツリー ノードのレベルで機能するためだと思われます)。
c++ - ブーストプロパティツリー:ノードから属性を削除します
私は次のXMLファイルを持っています:
andを使用してエッジからstart
andend
属性を削除したいと思います。source="0"
target="1"
私がこれをやろうとした方法は、次のコードにあります。XMLファイルに名前が付けられていると仮定して、ptree_test.gexf
それを読み込み、ツリー内の正しいエッジを見つけてから、を使用erase
して属性を削除しようとします。
これは動作しません。属性は削除されません。実際、その戻り値を出力するデバッグステートメントを入力すると、がedge.erase(attr.first)
表示されます0
。
c++ - Boost c ++プロパティ-キーが存在しない場合は、falseに設定します
プロパティツリーを使用してブーストを使用してjsonを解析するのは初めてです。
このハッシュがある場合:
キーが存在することを確認する必要があります。存在しない場合はfalseに設定します。
どうすればそれを優雅に行うことができますか?
ありがとう
c++ - Boost .ini ファイル パーサー - 複数のセクション名
boost::property_tree を使用して ini ファイルを解析しています。
次のようなことができるようになりたいです。
データ.ini:
現在、プログラムが実行され、次のエラーが発生します。duplicate section name
明らかに、2 つの[proton]
セクションがあるためです。
このようなファイルを解析する別の方法はありますか? おそらくxmlファイルを使用する必要がありますか?
c++ - ブースト プロパティ ツリーの値がツリーかターミナル値かを確認する
フィールドの値がツリーかターミナル値かを判断するために使用できる、boost::property_tree (json の読み取りに使用される) で API を探していました。たとえば、foo の値が最初のブロックに示すようにツリーになるか、2 番目のブロックに示すように文字列になる json があります。
最初に get_child_optional で確認できることはわかっています。戻り値が null の場合は、get_optional を確認できます。しかし、これを行うためのより良い方法/APIはありますか?