解析XML文件
XML是可擴展標記語言,主要用于傳輸和存儲數據
解析方式
使用lxml解析
主要注意: text tag attrib 使用方式 有 get() 以及迭代的情況
數據示例
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解析為樹結構 - parse() used to parse from files and file-like objects
# 解析文件類型對象
xml_file = etree.parse(input_file)
# 獲得該樹的樹根
root_node = xml_file.getroot()
print(root_node)
# 子節點
if len(root_node):
print("子節點個數: ", len(root_node))
# XML elements support attributes
# 這樣便可以遍歷根元素的所有子元素(這里是job元素)
for article in root_node:
print("元素名稱:", article.tag)
# 用.get("屬性名")可以得到article元素相應屬性的值
print(article.get("id"))
for field in article:
# 用.tag可以得到元素的名稱,而.text可以得到元素的內容
if field.tag == "reader":
# #將元素text連同sub_element一起打印
print(node_text_attrib(field))
說明
1.進行數據操作之前記得備份,使用備份的數據進行操作。確保失敗可回溯和追蹤的措施之一
2,可變和不可變的部分-使用腳本拼接
3.模板數據一定要記性驗證,同時有些重復性的工作記得使用工具來校驗
參考
Xml的使用在一些場景下比較常見