問題タブ [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++ - XercesC 設定の UTF-8 への出力
XercesC Lib を使用して、データのシリアル化を作成しています。どうすれば UTF-8 に設定できますか? 常に UTF-16 で生成され、それを変更する方法が見つかりません。
Java 側で JAXB を使用してデシリアライズすると、常に が得られ、content is not allowed in prolog
これが XML で確認できる唯一の違いです。JAXB でローカルにデシリアライズしようとすると、動作します。XercesC XML を取得すると、このエラーが発生します。XMLプラグインを使用してNotepad ++でフォーマットしようとすると、エラーがあると表示されますが、詳細はわかりません。
xerces-c - XercesDOMParser* および DOMDocument* が DOMElement* の前に範囲外になる
短いバージョン:XercesDOMParser*
と が作成に使用された の前に範囲外にDOMDocument*
出て も安全DOMElement*
ですか?
長いバージョン:
以下のコード スニペットでは、ドキュメントのルート要素を取得してメンバー 変数に格納するために、ローカルのXercesDOMParser*
andを作成します。とはどちらもコンストラクターの最後でスコープ外になりますが、 はメンバー変数として存続します。これでよろしいですか?今のところうまくいっているようですが、後で問題が発生するのではないかと不安です。DOMDocument*
DOMElement*
XercesDOMParser*
DOMDocument*
DOMElement*
c++ - XercesC 2.7 が DOMWriter の取得に失敗する
私はサーバーを作成していて、Java クライアントで XML を使用したいと考えていました。私は開発テストに XercesC 3.1.1 で CygWin を使用していますが、これは正常に動作します (この関数で 30000 をループしましたが、クラッシュはありませんでした)。ただし、私のターゲット マシンでは、XercesC 2.7 で HP-UX を実行しています。XercesC 実装の違いを実装するために、各バージョンを処理する個別のクラスを作成しました。
XercesC 2.7 でコードを実行しようとすると、. DOMWriter を作成しようとすると常に NULL ポインターが返され、再試行すると SIGABORT が返されます。
グーグルで何も見つからなかったので、誰かが私がここで間違っていることに光を当ててくれることを願っています。私は XercesC ソースで提供されているサンプル コードを見てきました。また、仲間のプログラマーからのいくつかの製品コードも持っていますが、実際には違いがわかりません。
少し長い SSCE を作成しようとしましたが、作成できる最短のサンプルです。
xml_serialize.h
xml_serialize.cpp
出力
アップデート
最終的に 2.7 を cygwin 用にコンパイルし、そこで上記のコードをテストしました。これで問題なく動作するので、HP-UX 環境に何らかの問題があるはずです。
c++ - ヒープ上にポインター メンバーを持つクラスのコピー コンストラクターを作成する
短いバージョン: メンバー ポインター変数を持つクラスのコピー コンストラクターを安全に作成できますか?その 1 つはヒープ上にあり、型xercesc::XercesDOMParser*
はxercesc::DOMDocument*
? もしそうなら、どのように?
長いバージョン:
Xercesc ドキュメント オブジェクトをラップするクラスを作成しました。XercesDOMParser
aおよび aへのポインターである 2 つのメンバー変数がありますDOMDocument
。これら 2 つのメンバーを示すクラス宣言の一部を次に示します。
ポインター_pParser
と_pDocument
は、コンストラクターで初期化されます。以下は、関連するコードを含むコンストラクターの省略版です。演算子で_pParser
作成され、ヒープ上にあることに注意してください。new
デストラクタはメンバー変数を削除します_pParser
:
これまで、コピー コンストラクターと代入演算子を非公開として定義せずに禁止してきました。
可能であれば、このクラスのコピー コンストラクターを作成して、この方法で関数の戻り値の型にできるようにしたいと思います。
私が目にする最初の問題は、デストラクタがdelete _pParser;
. だから問題だと思います。delete
デストラクタからを削除する必要があると確信しています。しかし、その後、メモリリークが発生します。
これにアプローチする方法が本当にわかりません。多分それは不可能です。これに使用できるアプローチはありますか?
xml - Xerces でのユニコード文字列の読み書き
Windows プラットフォームで XML ファイルからアラビア文字を読み書きしたいと考えています。私の c++ プログラムでは、XML ファイルに Xerces を使用しています。Xerces のドキュメントに記載されているように、Unicode 文字をサポートしています。私が使う
お気に入り
メソッドですが、それは????を返します キャラクター。何が悪いの?(Xerces のドキュメントでは、XMLCh が wchar_t であることが示唆されています)
c++ - Xerces-c: XMLString::トランスコード パズル
私はこのコードを持っています:
私を困惑させているのは、threadID のリリースをコメント アウトする必要があることです。しかし、threadID は XMLString::transcode の結果なので、解放する必要がありますか?