やりたい事
pythonでXMLヘッダを編集したい
やった事
python3
1#!/bin/env python3.6 2from xml.etree import ElementTree 3from xml.dom import minidom 4 5def createXML(): 6 ## object化 7 baseXML='<?xml version="1.0" encoding="UTF-8" ?> <Req></Req>' 8 root = ElementTree.fromstring(baseXML) 9 10 ## textへ戻す 11 rough_string = ElementTree.tostring(root, 'utf-8') 12 reparsed = minidom.parseString(rough_string) 13 print(reparsed.toprettyxml(indent=" ")) 14 15createXML()
結果
$ ./test.py <?xml version="1.0" ?> <Req/>
出したかったもの
$ ./test.py <?xml version="1.0" encoding="UTF-8"?> <Req></Req>
→encoding="UTF-8"
の文言が消えてしまいました。
確認した所消えたのは
reparsed = minidom.parseString(rough_string)
print(reparsed.toprettyxml(indent=" "))
のいずれかのようでです。
https://docs.python.jp/3/library/xml.dom.minidom.html
にもXMLヘッダに関する記載があるのですが、試してもうまく編集出来ませんでした。
なお一度ファイルに吐かせる等の処理はしてないです。
ドキュメントにある、writerを利用する意味がよくわかりませんでした。
おまけ
<Req></Req>
と <Req/>
が等価なのは知っているのですが
この辺を好きな方を出せるよう制御する方法がもしあるなら、
ついでに教えてくれると大変助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。