ホームページ  >  記事  >  バックエンド開発  >  Pythonのシリアル化関数のxmlについて詳しく紹介します。

Pythonのシリアル化関数のxmlについて詳しく紹介します。

高洛峰
高洛峰オリジナル
2017-03-26 17:14:191614ブラウズ

この記事では主にPythonのシリアル化関数のxmlを詳しく紹介しますので、興味のある方は参考にしてみてください

上記はxmlテキストを処理したい場合のモジュールです。輸入する必要がある。

import xml.etree.ElementTree as ET

#xml モジュールの名前が長すぎるため、as を使用して ET という別の名前を付けました。

ET.parse() は、ファイルから XML テキストを直接読み取り、XML テキストを解析して XML ツリー オブジェクトに変換します。

tree = ET.parse("diva.xml")

XML ツリーのルート ノードを取得します。

root =tree.getroot()

ルートノードのラベル(名前)を取得します。

root.tag

#XML ドキュメントのトラバース

root の子の場合:

print(child.tag, child.attrib)

子の i の場合:

print(i.tag,i.text)

注意! XML テキストの下の子ノードを取得する場合は、ルート ノードを介して取得する必要があります。ノードの後に​​ .tag を追加して、ノード内のタグ名を取得します。各ノードに含まれるコンテンツを取得するには、任意のノードに .text を追加します。 node. 、attrib はノード内のラベルに存在する属性を取得できます。

#各子ノードの album_sales_volume タグ内のテキスト コンテンツを取得します。

for i in root.iter("album_sales_volume"):

print i.text

#ラベル内の属性を取得したい場合は、テキストを attrib に変更するだけです。

変更:

forノードin root.iter('year'):

new_year = int(node.text) + 1

node.text = str(new_year) #Modify content

node.set(" flop","no") #ラベル属性を変更します。

tree.write("xmltest.xml")

削除:

root.findall('country') の国用:

Rank = int(country.find('rank').text)

ifランク > 50:

Root.remove(country)

tree.write('output.xml')

root.findall() は、ルート ノードから検索して、指定された名前を持つ子ノードを見つけるために使用されます。

root.remove() はノードを削除するために使用されます。

XML テキストを生成します。

xml.etree.ElementTreeをETとしてインポートします

new_xml = ET.Element("namelist")

name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})

age = ET.SubElement(name,"age",attrib={"checked":"no"})

sex = ET.SubElement(name,"sex")

sex.text = '33'

name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"})

age = ET.SubElement(name2,"age")

age.text = '19'

et = ET.ElementTree(new_xml) #ドキュメントオブジェクトを生成

et.write("test.xml", encoding="utf-8",xml_declaration=True)

ET.dump(new_xml) #生成されたフォーマットを印刷

以上がPythonのシリアル化関数のxmlについて詳しく紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。