python解析xml数据_数据开发_Python解析XML文件
解析XML文件
XML是可擴(kuò)展標(biāo)記語言,主要用于傳輸和存儲(chǔ)數(shù)據(jù)
解析方式
使用lxml解析
主要注意: text tag attrib 使用方式 有 get() 以及迭代的情況
數(shù)據(jù)示例
a31
代碼示例
#!/usr/bin/env python
# -*-coding:utf-8-*-
# @file parse_xml_exp.py
# @date 2020-10-**
from lxml import etree
def node_text_attrib(node):
result_line = ""
for result in node.iter():
if result.text is not None:
result_line = result_line + result.tag + " : " + result.text + '\n'
else:
# result.tag, result.attrib.get("key"), result.attrib
result_line = result_line + result.tag + " : " + result.attrib.get("key")+ '\n'
return result_line
if __name__ == '__main__':
input_file = r"C:\Users\test\Desktop\jobs.xml"
# 將xml解析為樹結(jié)構(gòu) - parse() used to parse from files and file-like objects
# 解析文件類型對(duì)象
xml_file = etree.parse(input_file)
# 獲得該樹的樹根
root_node = xml_file.getroot()
print(root_node)
# 子節(jié)點(diǎn)
if len(root_node):
print("子節(jié)點(diǎn)個(gè)數(shù): ", len(root_node))
# XML elements support attributes
# 這樣便可以遍歷根元素的所有子元素(這里是job元素)
for article in root_node:
print("元素名稱:", article.tag)
# 用.get("屬性名")可以得到article元素相應(yīng)屬性的值
print(article.get("id"))
for field in article:
# 用.tag可以得到元素的名稱,而.text可以得到元素的內(nèi)容
if field.tag == "reader":
# #將元素text連同sub_element一起打印
print(node_text_attrib(field))
說明
1.進(jìn)行數(shù)據(jù)操作之前記得備份,使用備份的數(shù)據(jù)進(jìn)行操作。確保失敗可回溯和追蹤的措施之一
2,可變和不可變的部分-使用腳本拼接
3.模板數(shù)據(jù)一定要記性驗(yàn)證,同時(shí)有些重復(fù)性的工作記得使用工具來校驗(yàn)
參考
Xml的使用在一些場(chǎng)景下比較常見
總結(jié)
以上是生活随笔為你收集整理的python解析xml数据_数据开发_Python解析XML文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乌班图 修改ip_unbuntu(乌班图
- 下一篇: table导出excel php_php