問題タブ [expat-parser]

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 に答える
505 参照

expat-parser - ロシア語の文字セットでexpat-parserを使用する方法は?

XML解析にexpatを使用しようとしましたが、XMLファイルにロシア語の記号があります。この記号はexpatによって誤って解釈されます。

私はexpired_strを取得しました:РВСѓСЃСЃРС”РС'Рв„ –текст</ p>

代わりに:Русскийтекст

これが私のカットされたコードです:

XMLファイル:

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

arm - Libtoolは、クロスコンパイル中に共有ライブラリをサポートしないと主張しています

busybox 1.13を実行しているARM組み込みマシン用のexpat(2.0.0)XML解析ライブラリを構築しようとしていますが、。/configure中に次のエラーが発生します。

gcc、g ++、ar、ranlib、stripなどを指定しました。これらはすべてconfigureツールで検出され、Ubuntu 12.10で実行されている最新のlibtool(この記事の執筆時点では2.4.2)を使用しています。 、では、なぜlibtoolは共有ライブラリをサポートしていないと言っているのですか?私のconfigureコマンドは:

...そして呼び出しの完全な出力は次のとおりです:

configurelibtoolが共有ライブラリの構築をサポートするかどうかをどのように決定するかを誰かに説明してもらえますか?

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

c++ - 64 ビットの libjingle がログイン XML の解析に失敗し、expat エラー: ERROR_INVALID_TOKEN

ログイン コードを64 ビットで実行しようとすると、最初のテストでtalk.google.comへのログインに失敗します。32ビットは正常に動作します。

ロギング マクロと siginput ロギングを有効にすると、失敗している XML が次のようになっていることがわかります。

expat の中に投げられているのが見えますが、そこXML_ERROR_INVALID_TOKENからどこへ行くべきかよくわかりません。時々、実際のログインに成功しますが、すぐに死んでしまいます。比較的ランダムに見えますが、常に最初の 10 回程度の応答で死亡します。末尾のジャンク データが無効なトークンの原因である可能性が高いことは認識していますが、何が原因かはわかりません。

私の最初の考えは、 64 ビット(??)に切り替える際のエンコードの問題でしたが、正直なところ、何がそのようなことを引き起こすのかわかりません。

以下は、libjingle が停止するログの追加のサンプル スニペットです。

そしてもう一つ:

別:

別:

以前にこの種の問題に遭遇した人はいますか?

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

c++ - 画面またはファイルに印刷すると、Expatがゴミを印刷します

XML ドキュメントから情報を出力すると、各行の前に �� が表示されます。これが私の XML ドキュメントです。

これが私のコードです

これはそれが出力するものです:

これは私が印刷したいものです:

どんな援助でも大歓迎です。ありがとうございました

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

php - PHP XML Expat パーサー: XML ドキュメントの一部のみを読み取る方法は?

次の構造の XML ドキュメントがあります。

パーサーを作成してドキュメント全体を印刷することはできますが、特定の属性 (id) を持つ (ユーザー) ノードと子のみを印刷したいという問題があります。

私のPHPコードは次のとおりです。

関数でこれを使用start()すると、正しいノードを選択できますが、読み取りプロセスには影響しません。

任意の助けをいただければ幸いです

更新: XMLReader は動作しますが、if ステートメントを使用すると動作しなくなります:

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

php - PHPでexpatを使用してxmlからノードを追加、追加、更新、および削除する方法

私はphpの新人です。そして、xmlをデータベースに解析したい。DomDocumentを使用してこれを試しました。しかし、私の友人は私に expat2 パーサーを使用することを勧めています。私はそれをグーグルで調べましたが、適切な答えを得ることはできず、xmlを読むための例しか得られません。しかし、パーサーからノードを追加、更新、更新し、xml をデータベースに変換したいと考えています。だから私に提案してください。ありがとう。

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

xml - expat がダッシュ文字を無効として拒否するのはなぜですか?

私の XML 入力ファイルには、次の行があります。

との間の文字は、ハイフン50\%75\%はなくダッシュです。

Python で expat を使用してこの XML ファイルを解析すると、次のようになります。

次のエラーが表示されます。

ここで、35 は上記の XML 入力ファイルから引用した行で、99 は%en ダッシュの直前の列です。

en ダッシュを に置き換えると&#x2013;、エラーはなくなり、すべて正常に動作します。だから私は回避策を持っています。しかし、なぜこれが起こっているのかわかりません。

この問題について私が読んだ内容 (Python のミニダム、xml、および違法な Unicode 文字など) は、UTF-8 で有効な一部の文字が XML では有効でないことを示しており、XML のセクション 2.2 を示しています。有効な文字範囲の仕様。しかし、そこでの Char の定義には range が含まれています#x20-#xD7FF。そして、#x2013明らかにその範囲内に収まります。だから問題は何ですか?

FWIW、XML 入力ファイルは UTF-8 宣言で始まり、

そして、16 進エディタを使用して、en ダッシュが文字シーケンス E2 80 93 で表されていることを確認しました。これは、en ダッシュの正しい UTF-8 エンコーディングです。では、なぜ外国人はそれを受け入れないのでしょうか? これはexpatのバグですか?

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

c - Expat (C) - (ほぼ) すべての行の「無効なトークン」

C の Expat で処理しようとしている XML があります。XML は Java で解析できるため、形式が正しくないと信じる理由はありません。さらに、私が持っている C コードは、「手動で」プラグインした文字列リテラルを解析しますが、XML ファイルの解析に失敗します。

これはコードです (私が追加したものを含む - 神がデバッガーを使用することを望んでいた場合、彼は私たちに printf を与えなかったでしょう):

これは、解析しようとしている XML ファイルです。

これは出力のサンプルです...

(全線共通)

「チート」して、読み取りの後にこの行を追加すると...

行が解析されます (もちろん、コードは他の理由で壊れます)。

そのため、ディスク ファイルからの読み取りでマングリングが進行しているように見えます...これはおそらく 16 ビットとして読み取られているのでしょうか? しかし、パーサーのエンコーディングを NULL または UTF-16 に変更しても、違いはないようです。

誰でも説明できますか?(違いがある場合は、64ビットOSXとLinuxの両方のボックスでこのコードを実行しましたが、同じ問題がありました)

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

c++ - C++ std::map std::bitset segfault

私はこのコードを持っています:

これは、4096 ビット長のビットセットを、ページのそのバイトがアクセスされたときに 1 でマークすることを目的としています。

このコードは、約 1 GB の XML をテストに使用したテスト マシンでうまく機能します。しかし、完全なもの (220 GB の XML) で実行すると、次のようにセグメンテーション エラーが発生します。

しかし、これは実行の非常に早い段階で行われるため、これがデータのサイズの積であると考えるのは困難です。いずれにせよ、非常によく似たコードを使用してこの大きなデータセットを分析しても問題はありませんでした ( https://github.com/mcmenaminadrianで私の github リポジトリを確認してください- このプロジェクトは memsize ですが、pagestat は非常に類似したコードを使用しています)。このコードの唯一の差別化要因は、ビットセットの使用のようです。

これまで私を逃してきたエラーを誰かが見つけることができますか?

(コードはマルチスレッドです-ビットセットスレッドセーフですか?これはライブラリの問題でしょうか-私のテストシステムはMac OSXですが、「本番」システムはLinuxです-Ubuntu 12.04 LTSですか?)