問題タブ [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 投票する
2 に答える
957 参照

c++ - Rapidxmlfirst_nodeはnullを返しません

C ++でRapidXMLを使用してXMLファイルを解析しようとしています。ファイルは次のようになります:

私が行っている親ノードを識別するには:

最初の2つのノード(ルートとa)に対しては正常に機能しますが、ノード'b'に対してこれを行うと、0ではなくどこかへのポインターが返されますが、'b'には子ノードがありません。0を返すべきではありませんか?RapidXMLのドキュメントには次のように書かれています。

function xml_node::first_node概要

説明 最初の子ノードを取得します。オプションでノード名と一致します。

パラメータname 検索する子の名前。名前に関係なく、最初の子を返す場合は0。name_sizeがゼロ以外の場合、この文字列はゼロで終了する必要はありません

name_size 名前のサイズ(文字数)、または文字列からサイズを自動的に計算する場合は0

case_sensitive 名前の比較では大文字と小文字を区別する必要があります。大文字と小文字を区別しない比較は、ASCII文字に対してのみ適切に機能します

見つかった子へのポインタを返します 。見つからない場合は0を返します。

なぜこれが起こっているのか、私が間違っているのか、何か考えはありますか?

ありがとう

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

c++ - C++ RapidXML - XML ファイルの値を編集する

私は最近 RapidXML を使い始めました。値の解析は問題ありません (要素内からデータを取得できます) が、要素内の値を編集したいと考えています。

このプログラムの目的のために、これを次のように変更します。

これに:

要素内の値を変更する機能があることをどこかで読みましたrapidxml::xml_nodeが、機能していないようです。value()ファイルに書き出すと、以前とまったく同じ結果が得られます。これが私のコードです:

何か案は?


編集:

受け入れられた回答に関連して、関数にはフラグparse()も必要です。rapidxml::parse_no_data_nodes

それはうまくいくでしょう。

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

c++ - C++を使用してXMLファイルからchar*以外のデータ型を返す際のエラー

XMLを使用するのは初めてで、現在C ++を使用してXMLファイルから整数を返そうとしています(実際にはdoubleを返したいのですが、まだそれほど遠くはありません)。私はRAPIDXMLと次の実装を使用しています:

すべてのファイルは同じディレクトリにあります。

XML(firstxml.xml):

XMLスキーマ(firstxsd.xsd):

C ++(test.cxx):

エラー:

私がオンラインで読んだチュートリアルから、私はファイルを正しく構築していると信じているので、ノードAからC++ファイルに解析される値は整数である必要があります。私が気づいたことの1つは、RAPIDXMLマニュアルでは、value()の仕様が次のとおりであることです。

したがって、関数定義は常に文字ポインタを返すと言っていますが、「値の解釈はノードのタイプに依存します」という行は、タイプに依存する値を返すことを意味します。

私の問題をご覧いただきありがとうございます。どんな助けでも大歓迎です、

ポール。

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

c++ - C ++ RapidXMLは同じタイプの兄弟を取得しますか?

したがって、RapidXMLでは、ファイルをループして、いくつかのtilesetノードからデータを取得しようとしています。

あなたはおそらく、何が問題なのかと言っているのですか?さて、RapidXMLでは、next_sibling()関数はオプションで名前と一致します。

したがって、その名前のノードが見つからない場合は、関係なく次の兄弟を返すだけです。これは私のプログラムの問題であり、余分な反復は必要ありません。これはバカだと思いますが、何でも。ノードを反復処理するだけにする方法はありますか?tileset

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

c++ - DevC++でRapidXMLを使用してC++でXMLファイルを解析する

そのため、クラス内のC ++プロジェクトのXMLファイルを解析する必要があり、RapidXMLを使用しています。Rapidxml_iterators.hppファイルは私にいくつかの問題を与えています。ちなみに私はDevC++を使用しています

最初、私は次のコードを持っていました:

main.cpp内で、#include "rapidxml_iterators.hpp"を実行し、コンパイルしようとすると、予期されたネストされた名前の指定子エラーが発生しました。Linuxでg++を使用してrapidxmlをコンパイルする手順に従い、コードを上から次のように変更しました。

今、それは私にこれらのエラーを与えています:

-std'という名前のクラステンプレートはptrdiff_t' inありません-ISOC++は、タイプのない`difference_type'の宣言を禁止します

このコードを修正する方法について誰かが何かアイデアを持っているなら、私は永遠に感謝するでしょう。前もって感謝します!

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

c++ - Dev C++ を使用して C++ で RapidXML を使用してエラーをコンパイルする

Dev C++ で C++ プロジェクトの XML ファイルを解析しており、rapidxml_iterators.hpp ファイルに次のコードがあります。

それは私にこれらのエラーを与えています:

これらのエラーが発生する前は、上記のコードは次のようになっていました。

これにより、次のようなネストされた名前指定子エラーが発生しました。

解析を行っているメインファイルには、次のものが含まれています。

私はすでにこのウェブサイトで同様の投稿を探しており、彼らのアドバイスに従いましたが、これまでのところ私の問題を解決したものはありません. Dev C++ の問題ですか、それとも私のコードの問題ですか? ありがとうございました

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

c++ - RapidXML を使用した解析

RapidXML と C++ を使用して解析することになっている XML ファイルがあります。ファイルは系統樹です。各ノードには、それぞれ値を持つ 1 ~ 3 個の子ノードを持つノードがあります。ノードは、学名、一般名、またはランクにすることができます。私の質問は、分類ノードごとに子ノードが異なるため (たとえば、学名と一般名の両方を持つものと、学名のみを持つものがある場合など)、子ノードの各値にどのようにアクセスすればよいでしょうか? たとえば、次のコードを書きました。

string comName = comName_node->value()ただRapidXMLファイルの行とこのメソッドでEXC_BAD_ACCESSのスレッドエラーが出ます

ここに私が解析しているファイルの一部があります:

助けてくれてありがとう!

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

c++ - RapidXML と c++ を使用して XML ファイルからツリーを構築する

私の C++ クラスのプロジェクトでは、xml ファイルを解析して、そこからバイナリ ツリーを構築することになっています。ファイルはこれよりもはるかに高密度ですが、レイアウトは次のとおりです。

ツリーを構築できるように、このデータを解析する方法を理解するのに苦労しています。ブランチごとに再帰を使用できると思っていましたが、子を1つしか取得できません。データをツリー構造に入れるためにキューを使用することを誰かがほのめかしましたが、キューを使用してツリーのすべてのレベルを通過する方法がよくわかりません。再帰は各ブランチのデータを解析する最も簡単な方法だと思いますが、再帰メソッドを適切に実装する方法がわかりません。使ってみた方法はこちら。最初にルート ノードを渡しました。

各ノードの最初の子のみを通過し、海の生き物、魚、メカジキ、陸の動物、哺乳類、犬を返します。

正しい方向への指針を本当に感謝します。ありがとう!

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

c++ - XML inOrder C++ の解析

これは、私の以前の質問の 1 つに関連しています。XMLファイルからツリーを構築しようとしています。xml ファイルを調べて、データからオブジェクトを作成し、ツリー オブジェクトを構築できるように、オブジェクトのベクトルを preorder と inorder で作成する予定です。私が使用している xml ファイルは、これよりもはるかに高密度 (約 23 レベル程度) ですが、レイアウトの例を次に示します。

私の事前注文と事後注文の方法。ルート ノード「MyJournal」が最初に渡されます。

これまでのところ、ファイルを調べて、前後の順序でオブジェクトを取得することはできますが、関数を再帰的に呼び出すための左または右のポインターがないため、データを順序どおりに取得する方法がわかりません。これについてどうすればよいか、誰かが私にいくつかのガイダンスを教えてもらえますか? この方法でデータを取得し、ツリー構造を正常に構築することは可能ですか? 助けてくれてありがとう!

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

c++ - RapidXML を使用して XML ツリーを解析し、不要なノードを破棄する

RapidXML を使用して XML ツリーを解析することに興味があります。ただし、この XML には、必要のない行の層がいくつかあります。これは、それが遺伝的ツリーの表現であり、多くのレイヤーが「クレード」と呼ばれているためです。これは、私にとって本質的に役に立たない情報です.

たとえば、ドキュメントのサンプルは次のとおりです。

ツリーのこの部分は、真核生物がネオムラの子であり、ネオムラ系統発生の子であることを表しているはずです。ただし、クレードノードの外観を考慮せずに RapidXML を使用して解析すると、いくつかの不要なレイヤーが作成されます。誰もこれを進める方法について何か考えがありますか?