import xml.dom.minidom
from xml.dom.DOMImplementation importimplementation
import xml.sax.writer
import xml.utils
# 名前空間 URI、修飾名、
#、または文書タイプを持たない新しい文書を作成します
document =implementation .createDocument(None,None,None)
personnel = document.createElement("personnel")
personnel.setAttribute('number', '5')
document.appendChild(personnel)
sexnode = document.createElement("性別")
sexnode.appendChild(document.createTextNode("male"))
namenode = document.createElement("name")
namenode.appendChild(document. createTextNode("tianbin"))
personnel.appendChild(sexnode)
personnel.appendChild(namenode)
out = open("tianbin.xml", "w")
xml.dom.ext.PrettyPrint(document,out)
今日は Python を使って XML ファイルを作成したいと思います。調べてみると、基本的にxmlファイルの解析にはpythonを使用するという情報があまりありませんでした。
たとえば、コンテンツ
を持つコード をコピーする場合、コードは次のようになります:
<著者>
xmlstuff.xml ファイルに書き込みます。
実際、基本原理は次のとおりです: xml の DOM メソッドを使用して、まずメモリ内に空の DOM ツリーを作成し、次に必要なノードを追加し続けます。必要な DOM をファイルに出力します。
1. xml.dom.minidom モジュールを使用して xml ファイルを作成します
from xml.dom import minidom
2. 各 XML ファイルはメモリ内の DOM ツリーを表す Document オブジェクトです
doc = minidom.Document()
3. 空の DOM ツリーで、
rootNode = doc.createElement("root")
doc.appendChild(rootNode) の上にルート ノードを追加します。 Python のリファレンスには、createElement の後にノード オブジェクトが DOM ツリーに追加されないと記載されています。手動で追加する必要があります
4. 他のノードを作成します
5. XML ファイルに出力します
doc.writexml(f , "/t", "/t", "/n", "utf-8") #最初のパラメータ f はターゲット ファイル オブジェクトで、2 番目のパラメータは 3番目のパラメータは他のノードやサブノードのインデントの配置形式のようで、4番目のパラメータは改行形式を指定します(" "を記入すると行がなくなります)分割すると、すべての XML が 1 行に削減されます:) )
、5 番目のパラメーターは、XML コンテンツのエンコーディングを指定します。最初のパラメータは必須ですが、他のパラメータはオプションです。
最終的なコードは次のとおりです (このプログラムには何の価値もありません。アイデアをテストして検証するためにのみ使用されます。データ構造を XML ファイルにシリアル化する単純なクラスまたは関数を定義する可能性が高くなります)。 🎜>
コードをコピーします
コードは次のとおりです:
xml.dom から import minidom インポート トレースバック 試してください:
f = open(" xmlstuff.xml", "w")
試してみます:
doc = minidom.Document()
rootNode = doc.createElement("root")
doc. appendChild(rootNode)
bookNode = doc.createElement("book")
bookNode.setAttribute("isbn", "34909023")
rootNode.appendChild(bookNode)
authorNode = doc.createElement( "著者")
bookNode .appendChild(authorNode)
authorTextNode = doc.createTextNode("dikatour")
authorNode.appendChild(authorTextNode)
doc.writexml(f, "/t", " /t", "/n" , "utf-8")
例外:
trackback.print_exc()
最終的に:
f.close()
IOException を除く:
print "ファイルのオープンに失敗しました"
概要:
1. 目標 (XML 文字列の文字列をファイルに書き込む) => XML 文字列の文字列を取得 => dom ツリー (toxml があります) DOM ツリーを最小限の方法で変換します。XML 情報は文字列として出力されます)
2. Python 2.5 ドキュメント (つまり、インストール時にインストールされる Python マニュアル) のライブラリ リファレンスの第 8 章 (構造化マークアップ処理ツール) を使用します。さらに、簡潔な Python の本を参照することも重要です。 3. たとえあなたが私と同じで、Python の使用方法がまったく分からなかったとしても、理解できるでしょう。 xml を操作して、情報を確認するだけで関数を完了できます
4. まさにそれは、Python 言語の強力な機能を証明しています:) 仕事が完了します。