問題タブ [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 に答える
3339 参照

python - Expat を使用して Python で XML を解析する

背景: 私は C# ランドから来たので、Xpath 経由で選択してノードと値を処理できるようなものを探しています。

これまでのところ、私のコードは次のとおりです。

C# でできるように、オブジェクトとしての DOM 要素とその属性を処理するには、どの標準ライブラリを使用する必要がありますか?

NodeList nodes = Parser.SelectNodes("Xpath") のようなものを探しています

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

python - Python.expat は、不適切なシンボルを含む XML ファイルを解析できません。どのように回るのですか?

XML ファイル (OSM データ) を expat で解析しようとしていますが、expat で解析できない Unicode 文字を含む行があります。

(XMLファイルの冒頭行のエンコードは「UTF-8」)

ファイルがかなり古いため、エラーが発生した可能性があります。最新のファイルでは、UTF-8 エラーは表示されず、正常に解析されます。しかし、私のプログラムが壊れたシンボルに遭遇した場合、どのような回避策を講じることができますか? bz2 コーデック (圧縮ファイルを解析します) と utf-8 コーデックを結合して、壊れた文字を無視するか、「?」に変更することはできますか?

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

python - Pythonでエンティティの置換に.dtdを使用するようにexpatを取得する

このようなxmlファイルを読み込もうとしています

問題のある外観を作成するポイントは、

パート:パーサーは、キャラクターハンドラーを2回呼び出します。1回は「Jos」、もう1回は「A.Blakeley」です。今、私は、それがeacuteエンティティを知らない場合、これが正しい動作である可能性があることを理解しています。しかし、これは私が持っているdblp.dtdで定義されています。ただし、このファイルを使用するように海外駐在員を説得することはできないようです。私が言えるのは

しかし、海外駐在員はまだ私の実体を認識していません。どのDTDを使用するかを海外駐在員に伝える方法がないのはなぜですか?私はもう試した

  • XMLと同じディレクトリにファイルを配置する
  • ファイルをプログラムの作業ディレクトリに配置します
  • xmlファイルの参照を絶対パスに置き換えます

私は何が欠けていますか?どうも。

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

python - Python + Expat: � エンティティのエラー

ElementTree と xpath を使用して、xml ファイル内の特定の要素のテキスト コンテンツを抽出する小さな関数を作成しました。

3 番目のテストは、次の例外で失敗します。

ExpatError: 無効な文字番号への参照: 行 1、列 13

�エンティティは違法な XML ですか? そうであるかどうかに関係なく、解析したいファイルにはそれが含まれており、それらを解析する方法が必要です。それを可能にする Expat 以外のパーサー、または Expat の設定に関する提案はありますか?


更新:私はちょうど今BeautifulSoupを発見しました。これは、以下の回答のコメントに記載されているタグスープパーサーであり、楽しみのためにこの問題に戻り、ElementTree の前で XML クリーナーとして使用しようとしましたが、忠実にに変換さ�れました。まったく無効な null バイト。:-)

... 収量

ただし、私の特定のケースでは、XPath 解析自体は実際には必要ありませんでした。BeautifulSoup 自体とその非常に単純なノード アドレッシング スタイルを使用することもできたはずparsed_tree.test.elem1.contents[0]です。

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

c - Windows で EXPAT を静的にリンクされた .a にコンパイルする

MingW を使用して Windows で C プログラムを作成しており、EXPAT XML ライブラリを使用したいと考えています。プログラムを静的にコンパイルしたいので、静的な .a ライブラリが必要です。

Windows で EXPAT を静的で独立したライブラリにコンパイルする方法はありますか?

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

c - XMPP サーバーの libxml2 と expat の比較

XMPPプロトコルとサーバーソフトウェア開発全般について何ができるかを学ぶ手段として、GoでゼロからXMPPライブラリ(および後でサーバー)を作成しようとしています(言語自体は無関係ですが)。

多くの人が知っているように、XMPP は XML に基づくメッセージング プロトコルであり、大量の短いが頻繁な XML ストリームに依存しています。このようなアプリケーションでは、イベント ベースの XML パーサーの方が優れていると考えています。なぜなら、DOM などは必要ないからです (間違っていたら訂正してください)。このライブラリはサーバー向けであるため、一度に多数のインスタンスが実行される可能性があることに注意してください。

libxml2 と expat のどちらがそのユースケースでパフォーマンスとメモリ使用量が優れているでしょうか?

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

c++ - expatstartelementハンドラーC++を使用する

expatを使用してxmlファイルを読み取ります。xmlファイルで指定された構成からクラスメンバー変数の一部を設定したいと思います。startelementハンドラーを定義しました。

これは次のように参照されます。

現在、私はグローバル構造を使用して、g_stConfigInfoすべての値をに格納していますStart()

例えば、

それから私はやっていますmyclass.sInputName = g_stConfigInfo.sInputname

グローバル変数を使用せず、代わりに、メンバー変数を設定する必要があるクラスのメンバー関数にすることができます。Start()内にもこのクラスのインスタンスを入れたくありません。これを行うための最良の方法は何ですか?

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

python - Expatベースのxml解析スクリプトがLinuxで機能せず、Windowsで機能する

私は、トラフィックシミュレーションソフトウェアによって生成されたいくつかのxmlファイルからデータを抽出するための一連のツールをPythonで作成しています。結果のファイルは非常に大きくなる可能性があるため、xml.parsers.expatを使用してそれらを解析します。

問題は、Windows XPマシンでスクリプトを実行すると完全に機能しますが、自宅のUbuntu 10.10では、まったく同じファイルで次のエラーが発生することです。
ExpatError: not well-formed (invalid token): line 1, column 0

ファイルは元々utf-8でエンコードされており、タグで宣言されたエンコードはASCIIであったため、成功せずにutf-8(またはUTF8またはutf8)に変更してみてください。BOMがなかったので、私はそれを書き込もうとしましたが、それでも成功しませんでした。また、Windowsの改行(CR / LF)をUnixの改行(CR)に置き換えようとしましたが、成功しませんでした。

また、動作中のpythonのバージョンは2.7.1で、Ubuntuボックスでは2.6.6ですが、私の問題が関連しているとは思わないでください。数週間前に、作業用コンピューターのPythonを2.6から2.7に問題なくアップグレードしました。

私はここでは専門家ではないので、アイデアが不足しています、何かヒントはありますか?

編集:さらに調査したところ(今は頭痛がして、Unicode関連の問題は嫌いです)、システム環境変数LANG、LC_ALL、およびLANGUAGEを(私の場合は)「fr_FR.utf-8」に適切に設定することで問題が解決したようです。 。なぜ最初はそうでなかったのか、なぜ今はうまくいくのかわかりません...

手に感謝します!

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

python - python-ldap の初期化時の httpd でのセグメンテーション違反 (11)

Python 2.43 を搭載した RHEL 5 でDjango アプリケーション ( OSQA ) にmod_wsgi を使用しています (アップグレードできません)。

サイトをセットアップして正常に動作させた後、認証を python-ldap と統合して、ユーザー名、電子メールアドレスなどの Active Directory 属性にアクセスしようとしました。

Apache httpd がクラッシュし、次のメッセージが表示されます。

私は当初、これは Apache と Python の間の expat ライブラリの不一致によるものだと考えていましたが、その後、pyexpat の Python バージョン (1.95.8) と一致するように libexpat.so モジュールをアップグレードしました。

django ログの大量のログから、次の行が実行されるとセグ フォールトが発生することがわかります。

この問題を引き起こしている python-ldap に固有のものはありますか? デバッグ方法について他に何か考えはありますか?

ありがとう

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

python - expatの解析エラーから正常に回復します

XMLは厳密であると想定されているため、XMLで許可されていないUnicode文字がいくつかあります。ただし、とにかくこれらの文字が含まれることが多いRSSフィードを使用しようとしています。無効な文字からの解析エラーを回避するか、無効な文字から適切に回復して、とにかくドキュメントを表示したいと思います。

ここで例を参照してください(とにかく3月21日): http: //feeds.feedburner.com/chrisblattman

XMLフィードでUnicodeを処理するための推奨される方法は何ですか?文字を検出してnullバイトに置き換えたり、パーサーを編集したり、その他の方法を実行したりしますか?