<book>
<title>sponge bob</title>
<author>Joe Doe</author>
<file>Tbase</file>
</book>
私は2つのファイルを持ち、1つはxmlで、もう1つはbase64ファイルです。私は文字列 "Tbase"をpythonを使ってbase64ファイルの内容に挿入して置き換える方法を知りたいと思います。Pythonを使用して特定のタグにbase64ファイルを挿入する方法
<book>
<title>sponge bob</title>
<author>Joe Doe</author>
<file>Tbase</file>
</book>
私は2つのファイルを持ち、1つはxmlで、もう1つはbase64ファイルです。私は文字列 "Tbase"をpythonを使ってbase64ファイルの内容に挿入して置き換える方法を知りたいと思います。Pythonを使用して特定のタグにbase64ファイルを挿入する方法
"Tbase"の代わりに、base64ファイルの逐語的な内容(まだbase64でエンコードされている)をXMLファイルに入れたいですか?その場合は、あなただけのような何か行うことができます:(。あなたは、Python 2.6以降を使っているのであれば、あなたはステートメントで使用して、この少しクリーナーを行うことができますが、それは別の議論だ)
xml = open("xmlfile.xml").read()
b64file = open("b64file.base64").read()
open("xmlfile.xml", "w").write(xml.replace("Tbase", b64file))
を
をまずbase64ファイルにデコードし、デコードした内容をXMLファイルに置きたい場合は、上の例の最後の行のb64file
をb64file.decode("base64")
に置き換えます。
もちろん、単純なテキスト置換を行うと、タイトルや著者に「Tbase」も含まれていれば問題が発生します。
from xml.etree.ElementTree import fromstring, tostring
xml = fromstring(open("xmlfile.xml").read())
xml.find("file").text = open("b64file.base64").read()
open("xmlfile.xml", "w").write(tostring(xml))
これは<file>
タグの内容を設定ファイルb64file.base64
の内容であるとにかかわらず、その前の内容だったと関係なく、どのような:より良い方法はそうのように、実際のXML解析ライブラリを使用することです「Tbase」がXML文書の他の場所に現れるかどうか。
xmlを解析し、文字列Tbaseをbase64でエンコードされた文字列に置き換える必要がありますか?どのように文字列を取得していますか? – dc5553
Tbaseは固定文字列で、base64ファイルは "openssl enc -base64 -A"コマンドからのものです。 – Javier