問題タブ [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 ElementTree (または lxml) の名前空間
従来の xml ファイルを取得し、操作して保存したいと考えています。
これが私のコードです:
ロードするファイルには次が含まれます。
ルートタグで。
名前空間に関連する次の問題があります。
- ご覧のとおり、タグ呼び出しごとに、最初に名前空間を指定して子を取得しています。
- 生成された xml ファイルには先頭がありません
<?xml version="1.0" encoding="utf-8"?>
。 - 出力のタグにはそのようなものが含まれていますが、最初に名前空間を付けずに
<ns0:eventDescription>
、元の として出力する必要があります。<eventDescription>
これらはどのように解決できますか?
python - ElementTree インスタンスに属性「fromstring」がありません。それで、私は何を間違えましたか?
私はいくつかのhtmlを開いて解析しようとしています。これまでのところ、問題はありませんでした。たとえば、ソースを開いて印刷することができました。しかし、解析に関しては、「ElementTree インスタンスには属性 'fromstring' がありません」で行き詰まっています。
これは私の Django view.py コードです:
Django バージョン: 1.2.4 Python バージョン: 2.6.5
誰かアイデアがありますか?
python - Python で ElementTree を使用して名前空間仕様を発行する
XML 宣言と名前空間を含む要素ツリーを含む XML ファイルを発行しようとしています。ここに私のサンプルコードがあります:
ただし、<?xml
タグも名前空間/プレフィックス情報も出てきません。私はここで少し混乱しています。
python - ElementTree XPath の奇妙な動作
こんにちは、Python 2.7 で (1.3) を
使用しており、XPath 機能を楽しんでいます
が、検索結果の 1 つに驚きました。 ElementTree
私のXMLの例:
質問 1:最初に見つかった要素を取得するため
に使用する場合findall
何も見つかりません。
ただし、要素にサブBackEnd
要素が含まれるように XML ファイルを変更すると、
検索された要素が適切に見つかります。
あなたはそのような行動に直面しましたか?
私は sth を間違っていますか、これはElementTree
実装のバグですか?
質問 2:
もう 1 つの問題は ですxmlns
。
XML の最初の行を次のように変更したとしますxmlns
。
そのような場合、検索文字列を次のように変更する必要があります。
解析中に xmlns を無視し、すべての要素の名前 (ルートを含む) をプレフィックスがないように扱うように ElementTree に指示する方法はありますか?
よろしく、
ズビグニエフ
python - ElementTree 名前空間の不便さ
取得した XML の品質を制御できません。場合によっては、次のようになります。
他の人では次のようになります:
そして、私も処理する必要があると思います
全体的に同じスキーマであり、それを処理するために必要なパーサーは 1 つだけです。これらすべてのケースをどのように処理できますか? これを乗り越えるには、XPath やその他の lxml グッズが必要です。etree.parse 時に一貫性を持たせるにはどうすればよいですか? XPath を使用する必要があるたびに名前空間をチェックする必要はありません。
python - PythonでElementTreeに兄弟要素を追加する
のような XML で
次のような兄弟を追加する必要があります
ElementTree に兄弟ノードを追加する機能はありますか? そうでない場合は、親ノードを取得して子ノードを追加する関数が必要だと思いますが、どうすればよいですか?
python - lxml の名前に : を含むタグ
lxml.etree を使用して Wordpress エクスポート ドキュメントを解析しようとしています (これは XML で、RSS のようなものです)。公開された投稿のみに関心があるため、次を使用して公開された投稿をループしています。
wheredata
は、すべてのitem
タグが含まれるタグです。item
タグには、投稿、ページ、および下書きが含まれます。私の問題は、lxml が:
名前に を含むタグを見つけられないことです (例: wp:post_type
)。試してみるitem.find("wp:post_type")
と、次のエラーが表示されます。
KeyError : ':'
タグの名前のコロンが無効であることを参照していると思います。lxml が正しいタグを見つけられるように、コロンをエスケープする方法はありますか? :
この文脈で何か特別な意味がありますか? それとも私は何か間違ったことをしていますか?どんな助けでも大歓迎です。
python - ファイル全体を解析せずにツリーのルートを取得するにはどうすればよいですか?
さまざまなツールからのxmlレポートを解析するためのxmlパーサーを作成しています。各ツールは、さまざまなタグを使用してさまざまなレポートを生成します。
例えば:
Arachni<arachni_report></arachni_report>
は、ツリールートタグとしてxmlレポートを生成します。
nmap<nmaprun></nmaprun>
は、ツリールートタグとしてxmlレポートを生成します。
必要なツールのいずれかからの有効なレポートでない限り、ファイル全体を解析しないようにしています。
最初に使用しようと思ったのはElementTreeで、xmlファイル全体を解析し(有効なxmlが含まれていると想定)、レポートがArachniまたはnmapに属しているかどうかをツリールートに基づいて確認します。
私は現在cElementTreeを使用しており、私が知る限り、getroot()はここではオプションではありませんが、私の目標は、このパーサーが不要なファイルを解析せずに、認識されたファイルのみで動作するようにすることです。
ちなみに、事前のおかげで、私はまだxml解析について学んでいます。
python - Python ElementTree XML 解析
adobe proを使用してpdfをxml 1.0にエクスポートして取得したxmlファイルを解析しようとしています。解析に Python と ElementTree を使用しています。PDFには、複数のページにまたがる表が含まれており、いくつかの異なる表ヘッダーがあります。
特定の文字列 (「MECHANICAL」など) を含むヘッダーで始まるテーブルから行と列のデータを解析して抽出し、次のテーブルの見出しセクション (「COMPLETED」など) で停止したいと考えています。これにより、このセクションの前後のすべての行と列のデータが除外されます。解析する簡単なタグはなく、タグ パターンが繰り返されるだけです。
これが私の現在のpythonコードです:
そして、ここに私のXMLファイルがあります:
python - Python ElementTree 重複チェッカー
そのため、2 つの XML を比較して同じかどうか (同じデータが含まれているかどうか) を確認するために、「重複チェッカー」を作成する必要があります。これらは同じクラスに由来し、XSD 構造から生成されるため、内部の要素の順序は同じになる可能性が高くなります。
重複チェックを行う最善の方法は、2 つの辞書 (dictLeft、dictRight) を設定し、xpath#value をキーとして保存し、その回数を保存することです。このようなもの:
左:
右
これら 2 つの辞書を比較すると、これら 2 つの XML が同じかどうかをかなり正確に知ることができます (誤った結果が得られる可能性はまれですが、それはごくわずかです)。
他の誰かがより良いアイデアを持っていますか? 私が知らないElementTreeの関数でしょうか?
編集:よりよく説明するには:
と
同じとみなされます。属性を無視しています。アイデアは、パフォーマンスをあまり妨げずに、コードをできるだけ単純に保つことです。