Python學習-創建修改XML

一、XML可擴展性標記語言,是一種非常常用的文件類型,主要用於存儲和傳輸數據。本文根據python庫文檔中提供的xml.etree.ElementTree類來進行XML的解析, 官方參考文檔https://docs.python.org/3.5/library/xml.etree.elementtree.html

二、 XML包含的元素類型
1. 標籤<tag>
2. 屬性 <tag  name="attribute">
3. 數據 <data>1<data>

例如:

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

三、創建XML文件

#coding=utf-8
import xml.etree.ElementTree as ET
#創建根節點
root = ET.Element("root")
#創建root的子節點sub1,並添加屬性
firstNode = ET.SubElement(root,"sub1")
firstNode.attrib = {"name":"name attribute","age":"age attribute"}
#創建子節點1(sub1)的子節點sub2,並添加數據
secondNode = ET.SubElement(firstNode,"sub2")
secondNode.text = "test"
#創建elementtree對象,寫文件
tree = ET.ElementTree(root)
tree.write("test01.xml")

創建的XML爲:

<root>
	<sub1 age="age attribute" name="name attribute">
		<sub2>test</sub2>
	</sub1>
</root>

四、修改XML文件
1. ElementTree.write("xmlfile"):更新xml文件
2. Element.append():爲當前element對象添加子元素(element)
3. Element.set(key,value):爲當前element的key屬性設置value值
4. Element.remove(element):刪除爲element的節點

#coding=utf-8
import xml.etree.ElementTree as ET
#讀取待修改文件
updateTree = ET.parse("test.xml")
root = updateTree.getroot()
#創建新節點並添加爲root的子節點
newEle = ET.Element("NewElement")
newEle.attrib = {"name":"NewElement","age":"20"}
newEle.text = "This is a new element"
root.append(newEle)

#修改sub1的name屬性
sub1 = root.find("sub1")
sub1.set("name","New Name")

#修改sub2的數據值
sub2 = root.find("sub1/sub2")
sub2.text = "New Value"

#寫回原文件
updateTree.write("test.xml")

修改完的XML:

<root>
	<sub1 age="age attribute" name="New Name">
		<sub2>New Value</sub2>
	</sub1>
	<NewElement age="20" name="NewElement">This is a new element</NewElement>
</root>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章