問題タブ [xerces-c]
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++ - 2 つのバージョンの xerces-c (またはその他のライブラリ) に対して静的にリンクするにはどうすればよいですか?
これはあまりきれいなことではないことはわかっていますが、それでもどうすればよいですか?
基本的に、xerces-c 2.7 を使用するサードパーティのライブラリを静的にリンクしており、xerces-c 3.1 を使用したいと考えています (2.x では実際には利用できない新しい最新かつ最高の機能のいくつかについて)。
2.7 を使用するモジュール (サード パーティ ライブラリによって内部的に使用され、コードに公開されることはありません) は、3.1 を使用するモジュール (私のコード内) とは何の共通点もありません。
これを行う方法はありますか?良いことではないことはわかっていますが、ライブラリのアップグレード リクエストを送信してから実際に完了するまでのリード タイムを考えるとゾッとします。おそらく少なくとも数か月はかかると思いますが、私はその不浄な道をたどりたくありません.
一般的なコンパイラに依存しないソリューションは、はるかに優れています。
c++ - newを使用する代わりにC++でオブジェクトを事前に割り当てる方法は?
XML DOM ツリー内のノードに関する情報を格納するために使用するオブジェクトでの "new" の呼び出しが異常に多いため、私が調査するように依頼された C++ の一部はパフォーマンスが低下しています。AQTime と Very Sleepy プロファイラーの両方を使用して、new が原因であることを確認しました。
これらのオブジェクトにはすべて、他のいくつかのオブジェクト型とオブジェクトへのポインターがメンバーとして含まれているため、ノード オブジェクトの新しい各オブジェクトは、すべてのメンバー オブジェクトのコンストラクターも呼び出します。これが、各割り当てに非常に時間がかかる理由だと思います。また、GlobalAlloc のようなものを呼び出して大量のメモリを要求することはできません。後で初期化する必要があります。
私はこのパフォーマンスの低下を軽減するために事前割り当て技術を使用して調査してきましたが、私が見たものには、私が必要とするものには適していない初期化されていないメモリの大きなチャンクを要求することが含まれますが、他のものは最終的にとにかく new を呼び出し、私たちが観察するかもしれないパフォーマンスの向上なので、私が知らない別のオプションがあるかどうか疑問に思っていますか? 初期化されていないメモリをすばやく取得するか、初期化されたメモリをゆっくりと取得しているので、私が求めていることはできないと感じています。私が間違っていることを証明してください:)
ありがとう
c++ - Apache Xerces ビルド済みバイナリの xerces-c_3_1.dll と xerces-c_3_1D.dll の違いは何ですか?
xerces-c_3_1.dll と xerces-c_3_1D.dll の違いは何ですか? .org/xerces-c/download.cgi )?
(同様に xerces-c_3.lib と xerces-c_3D.lib の比較もあります)
さまざまな xerces ビルド オプションに関係していると思いますが、違いを説明しているドキュメントが見つからないようです。
c++ - Xerces C++ を使用して DOMNode の子をカウント/アクセスする最速の方法
Xerces 2.6 DOMParser を使用する Windows アプリケーションのパフォーマンスを最適化しようとしているときに、Xerces C++ DOMNode オブジェクトの子要素の数をカウントする最速の方法を見つけようとしています。
ほとんどの時間は、子のカウントとアクセスに費やされているようです。私たちのアプリケーションは、ドキュメント内のすべてのノードを繰り返し使用してデータを添付する必要があり、DOMNode::setUserData()
最初は を使用してDOMNode::getChildNodes()
子DOMNodeList::getLength()
をDOMNodeList::item(int index)
数えてアクセスしていましたが、これらは比較的高価な操作です。
呼び出しの別のイディオムを使用し
DOMNode:: getFirstChild()
て最初の子ノードを取得し、呼び出しDOMNode::getNextSibling()
て特定のインデックスで子にアクセスするか、最初の子要素の兄弟の数をカウントして子ノードの合計数を取得すると、パフォーマンスが大幅に向上しました。
ただし、getNextSibling()
解析ステップのボトルネックのままなので、Xerces を使用して子要素をトラバースしてアクセスするさらに高速な方法があるのではないかと考えています。
c++ - Xerces-C++を使用してXMLを生成する
xerces
ライブラリを使用して、以下のようなXMLを生成しようとしています。従うべき適切な例が見つかりません。この分野の経験がある人は誰でもアドバイスできますか?
c++ - DOMElement には「getFirstElementChild xercesc C++」という名前のメンバーがありません
と呼ばれる xml パーサー ファイルを作成していますGetConfig.cpp
。「GetConfig.h」のヘッダー ファイルは次のとおりです。
ただし、プログラムをコンパイルしようとすると、次のようになります。
なぜそれが得られるのかわかりません...その宣言では、次を使用します。
よくわかりません... のバージョンに関連するものxercesc
でしょうか? それをコンパイルすると、xercesc 3.1
うまくいきました。
c++ - xercesを使用してxmlに属性を追加するにはどうすればよいですか?
私は現在、次のコードを使用して、C++でxercerを使用していくつかのXMLを生成しています。
ただし、(以下のように)最上位の「ad」要素内の属性を取得しようとしていますが、運が悪かったので、xercesの使用経験がある人にアドバイスしてください。
前もって感謝します!
c++ - 次の xerces コードはメモリ リークを引き起こしますか?
XMLを生成するxercesのインターネットで見つけた例を見てきました。トランスコード機能は何らかのエンコードを実行しているように見えますが、移入先のバッファーは決して解放されません。ドキュメントによると、ti を手動でリリースする必要があります。
注: 返されたバッファーは動的に割り当てられ、不要になったときに削除するのは呼び出し元の責任です。XMLString::release を呼び出して、この返されたバッファを解放できます。
doc->release はこれをメモリから解放できますか?
c++ - C++ヘッダーファイルで定義されたネストされた構造からXMLへの情報のダンプ
.hファイルを特定のXML形式に変換するC/C++ヘッダーファイルパーサーを作成しています。
私は次のように定義された構造を持っています:
上記の構造を次のように表現したいと思います。
私のアプローチ:2段階のプロセスを使用しています。最初にヘッダーファイルをgccXML形式に変換し、次にVisualStudio用のxerces-C++を使用して結果をXMLファイルに出力します。ネストされた構造体または共用体を除くすべて(列挙型、typedefなど)を正常に解析できます。somebpdyは、これを行う方法について私を助けてくれますか?ありがとう!
xml - xml 名前空間のデフォルト値をどのように設定しますか?
すべてのxmlファイルにそのような名前空間定義がいくつかあります:-
これらをデフォルトとして指定して、すべての XML ファイルにこれを書き込む必要がないようにする方法はありますか?
それが役立つ場合、私は主に解析に xerces-c を使用していますが、ライブラリに依存しないソリューションを好みます。