問題タブ [elementtree]

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 投票する
4 に答える
4216 参照

python - Pythonでxml要素の属性を並べ替える方法は?

xmlファイルをPythonElementTreeに解析する場合、Pythonは属性を辞書に格納するため、属性の順序が混同されます。

辞書の属性の順序を変更するにはどうすればよいですか?

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

python - Python の xml.etree.ElementTree は DTD をサポートしていますか?

xml.etree.ElementTree は DTD をサポートしていますか?

それがサポートされている場合、XML ファイルに既に 1 つある場合でも、ElementTree に dtd ファイルに対して XML ファイルをチェックさせることはできますか。(内部または外部)。

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

python - xml.ElementTreefromstringがcommentnodeをドロップしないようにする方法

私は次のコードフラグメントを持っています:

次のように入力するとinput

結果は次のようになります。

どうして?そして、どうすればコメントを保存できますか?

編集:使用されている正確なxmlライブラリは気にしませんが、タグに貼り付けられた変更を行うことができるはずです。残念ながら、lxmlはこれを許可していないようです(そして私は適切な名前空間操作を使用できません)

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

python - lxmlで要素をテキストに置き換えるにはどうすればよいですか?

lxml の ElementTree API の実装を使用して XML ドキュメントから特定の要素を完全に削除するのは簡単ですが、要素を何らかのテキストで一貫して置き換える簡単な方法はわかりません。たとえば、次の入力があるとします。

<r>...次の方法ですべての要素を簡単に削除できます。

ただし、各要素をテキストに置き換えて、出力を取得するにはどうすればよいでしょうか。

ElementTree API は、ツリー内のノードではなく、各要素の属性.textと属性を介してテキストを処理するため、要素に兄弟要素があるかどうかに応じて、多くの異なるケースに対処する必要があることを意味します。.tail既存の要素には.tail属性がありました。これを行う簡単な方法を見逃しましたか?

0 投票する
4 に答える
975 参照

python - SolrXMLをPython辞書に解析する

私はPythonを初めて使用し、xmlドキュメント(solrインスタンスのドキュメントで埋められている)をPythonディクショナリに渡そうとしています。私は実際にこれを達成しようとして苦労しています。ElementTreeとminidomを使用してみましたが、正しい結果が得られないようです。

これが私のXML構造です:

そしてこれから私はそれを次のような辞書に変える必要があります:

私は辞書がどのように機能するかについてあまり詳しくありませんが、すべての「ドキュメント」を1つの辞書にまとめる方法もあります。

乾杯。

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

python - ElementTreeを使用してWebxmlを解析縮小する方法

サイトのサムネイルに縮小Webサービスを使用しようとしています。サイトのサムネイルを作成できるかどうかを通知するXMLを返すAPIがあります。ElementTreeを使用してxmlを解析しようとしていますが、必要な情報を取得する方法がわかりません。XML応答の例を次に示します。

「stw:StatusCode」を取得する必要があります。「stw:StatusCode」で検索しようとすると、「予期されるパス区切り文字」構文エラーが発生します。ステータスコードを取得する方法はありますか?

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

python - コードでの Xpath の説明

私が働いている会社では、コードのこの部分に飛び込む必要がありました。あなたの解析の 1 つが失敗しており、コードのこの部分に障害がある疑いがありますが、経験不足のため、何をすべきかを正確に把握できません。

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

python - Python-ElementTree-要素に絶対パスを使用できません

以下のコードを実行しようとすると、ElementTreeでこのエラーが発生します。

私のXMLドキュメントは次のようになります。

コード:

私はMacのPython2.6を使用しています。Xpath構文を間違って使用していますか?

基本的に、特定のテキストを含むStepText要素が含まれている場合は、すべてのScript要素のname属性を表示したいと思います。

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

attributes - ElementTree属性キーを変更するにはどうすればよいですか?

値だけでなく、既存の要素の属性を変更したいだけでなく、キーも追加/削除/変更したい。例えば、

追加したい:rounded_top_left = "5"など...
作成後に要素属性のキーを変更することは可能ですか?

そうでない場合は、回避策を使用できます。たとえば、すべての要素の属性を一時的な辞書に保存し、その+/-から新しい要素を作成します。
ただし、変更する必要のある要素にはいくつかのサブ要素もあるため、このソリューションは望ましくありません...

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

python - 名前空間に依存しない方法でPythonのXPathを介してXML要素を見つける方法は?

この厄介な問題は2回目だったので、聞いてみるといいと思いました。

XMLドキュメントからElementsを取得する必要がある場合もありますが、これを行う方法は厄介です。

私が望むことを実行するPythonライブラリ、XPathを定式化するエレガントな方法、名前空間をプレフィックスに自動的に登録する方法、または組み込みのXML実装またはlxmlに隠された設定を登録して、名前空間を完全に削除する方法を知りたいです。あなたが私が欲しいものをすでに知っていない限り、明確化が続きます:)

例-ドキュメント:

私は何ができますか

ElementTree APIは、XPathクエリを提供する(私が知っている)唯一の組み込みAPIです。ただし、「UNames」を使用する必要があります。これは次のようになります。/{http://really-long-namespace.uri}root/{http://with-ambivalent.end/#}elem

ご覧のとおり、これらは非常に冗長です。次のようにすることで、それらを短縮できます。

しかし、これは{{{ugly}}}であり、≃≃≃なので壊れやすいものhttp…end/#ですhttp…end#。どのバリアントが使用されるかを誰が知っていますか?http…end/http…end

また、lxmlは名前空間プレフィックスをサポートしますが、ドキュメント内のプレフィックスを使用せず、デフォルトの名前空間を処理する自動化された方法も提供しません。ドキュメントから取得するには、各名前空間の1つの要素を取得する必要があります。名前空間属性は保持されないため、これらから自動的に取得する方法もありません。

XPathクエリには名前空間に依存しない方法もありますが、冗長で醜く、組み込みの実装では使用できません。/*[local-name() = 'root']/*[local-name() = 'elem']

私がやりたいこと

以下を少し入力するだけで、上記の例を実現するためのライブラリ、オプション、または汎用XPathモーフィング関数を見つけたいと思います…</ p>

  1. 名前なし:/root/elem
  2. 名前空間-ドキュメントのプレフィックス:/root/other:elem

…さらに、ドキュメントのプレフィックスを使用したり、名前空間を削除したりするステートメントもあります。

さらに明確にする:私の現在のユースケースはそれと同じくらい単純ですが、将来はもっと複雑なものを使用する必要があります。

読んでくれてありがとう!


解決しました

ユーザーsamplebiasは、私の注意をpy-dom-xpathに向けました。まさに私が探していたもの。私の実際のコードは次のようになります。

ドキュメントと一貫性があり、シンプルで名前空間を認識します。完全。