問題タブ [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++ - boost::property_treeから配列を読み取ると空白になります
この質問にboost::property_tree
示されている方法を使用して、から配列データを読み取ろうとしています。この例では、配列は最初に文字列として読み取られ、文字列ストリームに変換されてから、配列に読み込まれます。そのソリューションを実装しているときに、文字列が空になっていることに気付きました。
入力例(json):
これらの配列表記は両方とも、ブーストjsonパーサーによって配列として解釈されます。jsonライターを呼び出すと、配列データが出力に存在するため、データはプロパティツリーに存在すると確信しています。
これは失敗しているものの例です:
paramName
は"Object1.param1"
文字列として「10.0」の出力を取得します。paramName
は"Object1.initPos"
空の文字列を取得します。paramName
はツリーに存在しないものである場合は、"Not Found"
が返されます。
c++ - boost::property_:tree - データの解析と処理
私の問題に対する完璧な答えと思われるboost::property_treeを発見しました。xml ファイルから特定のデータを抽出する小さなテスト プログラムを作成しました。ドキュメントで提供されている例をガイドとして使用しました。xml ファイル: test.xml:
コード:
注: 値を抽出しようとしています (ABC と、A - 文字列 - 6 - ABC などの内部値、各 GROUP - および「行」の各セット。これを処理して別の形式で出力します)。私が試したことについては、コード内のコメントを参照してください。
これまでのところ、最良の結果は次のものでした: (print() 内の内容:
複数のレコードからデータを取得できません! 助けてください、私に提案をしてください - 私は何を間違っていますか?
ありがとうございました。
c++ - プロパティツリーを使用したブーストでのxml解析
次のxmlファイルがあります。ベイ1とベイ2の2つのドライブのファームウェアバージョン情報が表示されています。この時点では、ベイ1とベイ2を除いて、すべてが両方のドライブで同じように見えます。ただし、これらのファームウェアバージョンは異なると思います。ベイ1とベイ2のドライブのファームウェアバージョンが同じかどうかを読んで比較できるようにする必要があります。Boost(RedHatおよびC++のバージョン1.41プロパティツリー)を使用しています
私のC++はそれほど素晴らしいものではなく、Boostに関するドキュメントは本当にひどいものです。これまでのところ、xmlファイルを読み取ることはできますが、ファームウェアのバージョンが同じかどうかを検索して確認することはできません。運が悪かったので、いくつかの異なることを試しました。私はこれについていくつかの助けを本当にいただければ幸いです。
いくつかの問題を解決しました。誰かがすべてのノードを取得する方法を教えてもらえますか?このコードは現在、最初の一致を見つけてそれを出力しますが、それ以外は何もありません。そこにいくつのノードがあるかがわかっていれば、forループを使用できたはずです。イテレータを使用するなど、他の誰かがより良いアイデアを持っていますか?もしそうなら、その方法を教えてください。
c++ - Boost property tree: Remove a node
How would you remove a node from boost xml property tree?
I have a document like this:
#xA;I know how to itereate and print all folders, but how would i remove one of the items and save the xml back?
c++ - boost :: property_treeコンパイルエラー(エラーC2061:構文エラー:識別子'p')
Boostプロパティツリーを利用するコードをコンパイルするのに苦労しています。VisualStudio2010を使用しています。
エラーを再現するためにコードを可能な限り単純化すると、コードは次のようになります...
...そして完全なエラーは次のようになります...
私にとって、ApplieiTunesLibraryImporter.cppファイルの24行目は
そのため、コンパイラは私の使用を好みません。次のようなものを使用すると、同様のエラーが発生する可能性があります
しかし、上記のコードは私がエラーを発生させることができる最も簡単なものです。
コンパイルエラーの原因となっているブーストファイル(allocator_utilities.hpp)内のコードは次のようになりますが、私にはかなりわかりにくいです。
誰かが試して再現したい場合のために、ここに.hコードがあります。
これはすべて少し頭が溶けるようになったので、誰かがこれに光を当てることができれば、それは大いにありがたいです。
乾杯。
c++ - boost :: property_treeを含めると、コンパイラエラーがスローされます
SystemCプロジェクトでブーストプロパティツリーを使用しようとしています。プロジェクトの用途:
ヘッダ:
コード:
しかし、property_tree.hppをヘッダーファイルに追加すると、gccは次のようにスローします。
そしてもう少し同じことを言っています。
これは、使用中ではなく、インクルード時に発生します。これは、インクルードまたは名前空間が欠落していることが原因である可能性がありますか?
c++ - ブースト プロパティ ツリー アクセス違反
ブーストのプロパティ ツリーを使用して XML ファイルを解析しようとしましたが、文字列の値を取得しようとするたびに、アクセス違反の例外がスローされます。整数で問題なく動作するので、少し混乱しています。コードの一部を次に示します。
そして XML ファイル:
最初に、文字列にスペースを割り当てなかったが、malloc() も new char[] も役に立たなかったことが原因だと思いました。
どんな助けでも大歓迎です。前もって感謝します :)
c++ - Boost プロパティ ツリー 1.50 で read_xml() を使用する場合の複数のフラグの使用
それで、ここで参照されている「きれいな印刷」トリミング空白フラグを見つけました:boost::property_tree XML pretty printing
そして、Boost::Property_Tree 1.50 の read_xml() 関数のドキュメントを見つけました: http://www.boost.org/doc/libs/1_50_0/doc/html/boost/property_tree/xml_parser/read_xml_id1073248.html
しかし、XML を読み込んでから書き出すときに、無視コメントとトリム空白フラグの両方を有効にする方法を一生理解できません。どんな助けでも大歓迎です。
私の主な問題は、関数プロトタイプにあると思います。関数プロトタイプが要求しているように、使用されるフラグはどのように int に変換されますか?
c++ - Boostプロパティツリーでオブジェクトを取得するにはどうすればよいですか
サンプルコードを理解して変更する必要があります。私はある時点で立ち往生していて、解決策を見つけることができませんでした。コードは次のとおりです。
ここで「秒」とはどういう意味ですか?
プログラムが読み取るJSONの例は次のとおりです。
もう1つの質問ですが、コードをコンパイルしようとすると、次のエラーも発生します。これはどういう意味ですか、どうすれば解決できますか?
どうもありがとう。
c++ - Boost から basic_ptree を Typedef する
プロジェクトに Boost.PropertyTree を使用しています。Boost が ptree typedef で使用する std::string の代わりに、Key と Data にユーザー定義型を使用したいと考えています。
ただし、自分で basic_ptree を typedef すると、次のコンパイラ エラーが発生します。
次のスニペットは、basic_tree を typedef してコンパイラ エラーを取得する方法と例を示しています。
私の質問は、どうすればそれを正しく型定義できますか? 興味があれば、MSVC 2012 を実行しています。
前もって感謝します!