最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python序列化功能之xml的详细介绍

来源:动视网 责编:小OO 时间:2020-11-27 14:24:53
文档

python序列化功能之xml的详细介绍

<;diva_list>;<;diva name=";hamasaki ayumi";>;<;state flop=";yes";>;1<;/state>;<;year>;1978<;/year>;<;album_sales_volume>;27804358<;/album_sales_volume>;<;album name=";A song for xx";sn=";1st";/>;<;album name=";LOVEppears";sn=";2nd";/>;<;/diva>;<;diva name=";koda kumi";>;<;state flop=";yes";>;2<;/state>;<;year>;1982<;/year>;<;album_sales_volume>;8273371<;/album_sales_volume>;<;album name=";affection";sn=";1st";/>;<;album name=";grow into one";sn=";2nd";/>;<;/diva>;<;/diva_list>。
推荐度:
导读<;diva_list>;<;diva name=";hamasaki ayumi";>;<;state flop=";yes";>;1<;/state>;<;year>;1978<;/year>;<;album_sales_volume>;27804358<;/album_sales_volume>;<;album name=";A song for xx";sn=";1st";/>;<;album name=";LOVEppears";sn=";2nd";/>;<;/diva>;<;diva name=";koda kumi";>;<;state flop=";yes";>;2<;/state>;<;year>;1982<;/year>;<;album_sales_volume>;8273371<;/album_sales_volume>;<;album name=";affection";sn=";1st";/>;<;album name=";grow into one";sn=";2nd";/>;<;/diva>;<;/diva_list>。


这篇文章主要为大家详细介绍了python序列化功能之xml具有一定的参考价值,感兴趣的小伙伴们可以参考一下

<diva_list>
 <diva name="hamasaki ayumi">
 <state flop="yes">1</state>
 <year>1978</year>
 <album_sales_volume>27804358</album_sales_volume>
 <album name="A song for xx" sn="1st"/>
 <album name="LOVEppears" sn="2nd"/>
 </diva>
 <diva name="koda kumi">
 <state flop="yes">2</state>
 <year>1982</year>
 <album_sales_volume>8273371</album_sales_volume>
 <album name="affection" sn="1st"/>
 <album name="grow into one" sn="2nd"/>
 </diva>
</diva_list>

上面是一段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文档

for child in root:

print(child.tag, child.attrib)

for i in child:

print(i.tag,i.text)

注意!如果想取xml文本下的子节点,必须通过根节点去取,任何节点后面加上.tag都可以取到节点中的标签名,任何节点加上.text都可以取到每个节点包含的内容,attrib 可以取到节点中标签中存在的属性。

#获取每个子节点的album_sales_volume标签中的文本内容。

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

print i.text

#如果是要获取标签内的属性,直接把text改成attrib即可。

修改:

for node in root.iter('year'):

new_year = int(node.text) + 1

node.text = str(new_year) #修改内容

node.set("flop","no") #修改标签属性。

tree.write("xmltest.xml")

删除:

for country in root.findall('country'):

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

if rank > 50:

root.remove(country)

tree.write('output.xml')

root.findall() 用于从根节点开始查找,查找到指定名字的子节点。

root.remove()用于删除一个节点。

生成xml文本。

import xml.etree.ElementTree as 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的详细介绍

<;diva_list>;<;diva name=";hamasaki ayumi";>;<;state flop=";yes";>;1<;/state>;<;year>;1978<;/year>;<;album_sales_volume>;27804358<;/album_sales_volume>;<;album name=";A song for xx";sn=";1st";/>;<;album name=";LOVEppears";sn=";2nd";/>;<;/diva>;<;diva name=";koda kumi";>;<;state flop=";yes";>;2<;/state>;<;year>;1982<;/year>;<;album_sales_volume>;8273371<;/album_sales_volume>;<;album name=";affection";sn=";1st";/>;<;album name=";grow into one";sn=";2nd";/>;<;/diva>;<;/diva_list>。
推荐度:
标签: 功能 xml python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top