問題タブ [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.
python - Pythonでxml要素の属性を並べ替える方法は?
xmlファイルをPythonElementTreeに解析する場合、Pythonは属性を辞書に格納するため、属性の順序が混同されます。
辞書の属性の順序を変更するにはどうすればよいですか?
python - Python の xml.etree.ElementTree は DTD をサポートしていますか?
xml.etree.ElementTree は DTD をサポートしていますか?
それがサポートされている場合、XML ファイルに既に 1 つある場合でも、ElementTree に dtd ファイルに対して XML ファイルをチェックさせることはできますか。(内部または外部)。
python - xml.ElementTreefromstringがcommentnodeをドロップしないようにする方法
私は次のコードフラグメントを持っています:
次のように入力するとinput
:
結果は次のようになります。
どうして?そして、どうすればコメントを保存できますか?
編集:使用されている正確なxmlライブラリは気にしませんが、タグに貼り付けられた変更を行うことができるはずです。残念ながら、lxmlはこれを許可していないようです(そして私は適切な名前空間操作を使用できません)
python - lxmlで要素をテキストに置き換えるにはどうすればよいですか?
lxml の ElementTree API の実装を使用して XML ドキュメントから特定の要素を完全に削除するのは簡単ですが、要素を何らかのテキストで一貫して置き換える簡単な方法はわかりません。たとえば、次の入力があるとします。
<r>
...次の方法ですべての要素を簡単に削除できます。
ただし、各要素をテキストに置き換えて、出力を取得するにはどうすればよいでしょうか。
ElementTree API は、ツリー内のノードではなく、各要素の属性.text
と属性を介してテキストを処理するため、要素に兄弟要素があるかどうかに応じて、多くの異なるケースに対処する必要があることを意味します。.tail
既存の要素には.tail
属性がありました。これを行う簡単な方法を見逃しましたか?
python - SolrXMLをPython辞書に解析する
私はPythonを初めて使用し、xmlドキュメント(solrインスタンスのドキュメントで埋められている)をPythonディクショナリに渡そうとしています。私は実際にこれを達成しようとして苦労しています。ElementTreeとminidomを使用してみましたが、正しい結果が得られないようです。
これが私のXML構造です:
そしてこれから私はそれを次のような辞書に変える必要があります:
私は辞書がどのように機能するかについてあまり詳しくありませんが、すべての「ドキュメント」を1つの辞書にまとめる方法もあります。
乾杯。
python - ElementTreeを使用してWebxmlを解析縮小する方法
サイトのサムネイルに縮小Webサービスを使用しようとしています。サイトのサムネイルを作成できるかどうかを通知するXMLを返すAPIがあります。ElementTreeを使用してxmlを解析しようとしていますが、必要な情報を取得する方法がわかりません。XML応答の例を次に示します。
「stw:StatusCode」を取得する必要があります。「stw:StatusCode」で検索しようとすると、「予期されるパス区切り文字」構文エラーが発生します。ステータスコードを取得する方法はありますか?
python - コードでの Xpath の説明
私が働いている会社では、コードのこの部分に飛び込む必要がありました。あなたの解析の 1 つが失敗しており、コードのこの部分に障害がある疑いがありますが、経験不足のため、何をすべきかを正確に把握できません。
python - Python-ElementTree-要素に絶対パスを使用できません
以下のコードを実行しようとすると、ElementTreeでこのエラーが発生します。
私のXMLドキュメントは次のようになります。
コード:
私はMacのPython2.6を使用しています。Xpath構文を間違って使用していますか?
基本的に、特定のテキストを含むStepText要素が含まれている場合は、すべてのScript要素のname属性を表示したいと思います。
attributes - ElementTree属性キーを変更するにはどうすればよいですか?
値だけでなく、既存の要素の属性を変更したいだけでなく、キーも追加/削除/変更したい。例えば、
追加したい:rounded_top_left = "5"など...
作成後に要素属性のキーを変更することは可能ですか?
そうでない場合は、回避策を使用できます。たとえば、すべての要素の属性を一時的な辞書に保存し、その+/-から新しい要素を作成します。
ただし、変更する必要のある要素にはいくつかのサブ要素もあるため、このソリューションは望ましくありません...
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>
- 名前なし:
/root/elem
- 名前空間-ドキュメントのプレフィックス:
/root/other:elem
…さらに、ドキュメントのプレフィックスを使用したり、名前空間を削除したりするステートメントもあります。
さらに明確にする:私の現在のユースケースはそれと同じくらい単純ですが、将来はもっと複雑なものを使用する必要があります。
読んでくれてありがとう!
解決しました
ユーザーsamplebiasは、私の注意をpy-dom-xpathに向けました。まさに私が探していたもの。私の実際のコードは次のようになります。
ドキュメントと一貫性があり、シンプルで名前空間を認識します。完全。