問題タブ [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.

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

c++ - Xerces C++ XML: エスケープは本当に難しい?

私はXercesライブラリを使用しています。すべて問題なく使用できますが、XML文字列をエスケープしたいのですが、そのために使用されるXMLFormatterクラスがあることがわかりました。ドキュメントを掘り下げた後、コンストラクターから使用するのは本当に難しいことがわかりました視点。私が欲しいのは2つの機能だけです:

文字列エスケープ (文字列);

文字列 unescape(文字列);

なぜ xerces はこれを行うのが難しいのですか?

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

c++ - 静的にリンクされたxerces3.0.0は機能しませんが、動的はLinuxで機能します

だから私はLinux上でXerces3.0.0を静的にリンクしようとしています。

私はすでに動的リンクでそれを行いました、そしてそれは働きます、しかし依存を避けるために私はそれを静的にしたいと思います。

適切な方法でそれを行うためにすべてのmakeファイルを変更しました

-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...

しかし、次のエラーが発生します。

ここにあるブルートフォース方式で修正しました

しかし、xercesに関連する別のタイプのエラーがありました。

pthreadが欠落しているようですので、追加してみましたが、問題は解決しません...これらのエラーはXercesから発生しています...動的バージョンは正常に動作し、静的バージョンは失敗します。

何か案は???

ありがとう

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

c++ - AIX 用の静的な Xerces 3.0.0 ライブラリはどこにありますか

xerces apache サイトからバイナリを取得しましたが、動的ライブラリしかありません。

ライブラリの静的バージョンが含まれていないのはなぜですか? また、AIX 用の静的な Xerces 3.0.0 を入手できる場所はありますか。

そしてそれのCバージョン

ご意見ありがとうございます

PSその他、自分で構築するこのオプションは知っていますが、より標準化されたものが必要です。libの動的バージョンを構築するために使用した汎用ビルドフラグを使用することを意味します

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

xml - DOMDocument から文字列へ xerces-c

xerces-c を使用して XML ドキュメントを解析し、DOMPrint の例のようなファイルに正常に書き込むことができますが、これを配列に格納することはできません。シリアライザーを引き続き使用する必要があることをオンラインで確認しましたが、何を変更すればよいかわかりません。明らかに、LocalFileFormatTarget を使用する代わりに、何か他のものを使用する必要がありますが、オンラインで MemBufFormatTarget のリファレンスを探しても、その使用方法の手がかりが得られません。xerces-c を使用して xml ドキュメントを文字列にするにはどうすればよいですか?

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

xml - Xerces-c: xsd ファイル c++ を使用した XML ファイルの検証

Xerces-c を使用しようとしています。.xsd スキームがあり、それを使用して XML ファイルを検証したいと考えています。xsd ファイルとエラー ハンドラを定義しましたが、何らかの理由で xsd がエラーをスローしません。私が見逃している可能性があるものへの洞察はありますか?

ありがとう。

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

xml - xerces-c: DOM xml 解析

XML 解析について質問があります。私はサンプル プログラムを試していて、解析がどのように機能するかを理解するために少し変更を加えましたが、よく理解できない出力に遭遇しました。

これは私のxmlファイルです:

プログラム全体にデバッグ ステートメントを挿入して、getChildNodes() などの関数呼び出しが呼び出されたときに処理されるときに何が起こるかを理解しようとしました。これは私が受け取った出力です:

出力から、xml ファイルが正しく解析されていることが容易に推測できます。しかし、プログラムが #text という名前の余分なノードも検出していることに気付きました( getNodeName() 関数を使用して出力)。私の質問は、これらの#textは何を参照していて、ループ全体で定期的に表示されるのはなぜですか?

ありがとう!

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

c++ - C++ Xerces-c: shared_ptr の初期化

私は共有ポインターが初めてで、共有ポインターがメンバー変数でもある場合、共有ポインターを初期化する方法を知りたいと思っていましたか?

現在、私のコードは次のようになっています: ヘッダー ファイルには、次のものがあります。

コンストラクターには、次のようなものがあります。

私が持っているデストラクタで:

ただし、Valgrind を使用してプログラムをコンパイルすると、次のエラーが表示されます。純粋な仮想メソッドが呼び出されました。アクティブな例外なしで終了しました。サイズ 8 の無効な読み取り。

初期化で間違っている可能性があることについての洞察はありますか?

私の疑いは、割り当てられていないメモリから読み取っていることです。

編集:

そのため、デストラクタで、終了コマンドの前に次のコード行を追加すると、メモリ リークとエラーがすべて消えました。

if (パーサー) parser.reset();

割り当てを解除する前に、パーサーへのすべての参照を削除する必要があるのはなぜですか?

ありがとうございます。

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

c++ - Xerces-C での DOM 要素のメモリ割り当て管理

xml 解析の問題に取り組むのに 2 日かかりましたが、まだ終わっていません :)

さて、多くの試行錯誤の末、最終的に Xerces-C を使用して C++ アプリケーションで xml を解析することにしました。

うーん... TinyXml、RapidXml などを試してみました.. Xerces も、メモリ割り当ての観点からノードを管理するときに同じように動作します。

ええと、DOMElement、DOMDocument、DOMNode はすべてプライベート コンストラクト クラスです...解析時に最高のパフォーマンスを確保するためであることはわかっていますが、クラス間のノードを管理しようとすると、非常に悪い結果になります。

この問題があります。xml ドキュメント (必要なすべてのノードを持ち、自由にナビゲートできる DOM オブジェクト) を格納するクラスを作成したいので、文字列 var ではなく DOM obj です。DOMElement/DOMDocument が良いと思います)。さて、このオブジェクトは私のクラスのメンバーです。クラスで関数を使用して、この DOM ツリーを時間の経過とともに成長させたい...内部的にツリーを保持し、必要なときにファイルに出力します。これが私がやりたいことです。奇妙に思えることはわかっていますが、これが私の要件です。私はそうしなければなりません、他のすべての解決策は考慮されるべきではありません...申し訳ありません。(なぜこれが実装なのかを説明する必要がありますが、時間がかかります)。

これをコードで表現すると、次の行は私が達成したいことを表しています。

プライベート コンストラクターによって引き起こされるすべての制限、および XercesDOMParser からのみ DOMDocument を取得でき、ポインターを取得できることを考慮すると、どうすればこれを達成できますか... コンストラクターでそうする場合:

ドキュメントを _xmldoc に割り当てた後、コンストラクター関数はスコープ外になり、パーサーが削除されるため、それが所有するすべてのコンポーネントが含まれるため、私の _xmldoc は何も指しません...

どうすればこの問題を解決できますか???

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

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

c++ - Xerces で XMLPlatformUtils::Initialize() を呼び出すときは?

私は Xerces を使用していますが、Initialize と Terminate を使用する場合の参照はあまり明確ではありません。

多くの Web サイトでは、通常、「Xerces コードは常にこの 2 行の間に入れてください」と説明されています。

しかし、私はいつもそれをしなければなりませんか?それとも解析時だけですか?

ありがとうございました

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

c++ - Xerces-C での XML ドキュメントの印刷

私の問題は単純です。私は XercesDOMParser を持っているので、そこに格納されている DOMDocument に getDocument() を介してアクセスできます。

ツリーを表す xml 文字列を取得したい。

正しい呼び方は?ライブラリによって有効な演算子/関数が提供されていると仮定します。