python解析xml數據_數據開發_Python解析XML文件

解析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的使用在一些場景下比較常見

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457277.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457277.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457277.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mac下運行git報錯xcrun: error: invalid active developer path ..

錯誤:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 如圖: 解決方法: 終端輸入: xcode-select --install 之后點擊…

CodeForces 15B Laser

題目鏈接:http://codeforces.com/problemset/problem/15/B題意:給出n*m的一塊巧克力,再給出兩個點,兩點只能同時移動,兩點所占位置巧克力會融化,問所有能走位置走遍之后還剩下幾塊巧克力。思路:…

datetime-時間日期模塊

import datetime例1:把nginx的日志格式轉化為易懂的格式time 10/Aug/2016:03:20:09 0800a datetime.datetime.strptime(time,%d/%b/%Y:%H:%M:%S %z)a.strftime(%Y%m%d%H%m)轉載于:https://blog.51cto.com/liuzhengwei521/1892274

tensorflow獨熱編碼方法_吳恩達課后作業學習2-week3-tensorflow learning-1-基本概念

參考:https://blog.csdn.net/u013733326/article/details/79971488希望大家直接到上面的網址去查看代碼,下面是本人的筆記到目前為止,我們一直在使用numpy來自己編寫神經網絡。現在我們將一步步的使用深度學習的框架來很容易的構建屬于自己的…

python運維開發之第八天(socket)

什么是 Socket? Socket又稱"套接字",應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。 socket()函數 Python 中,我們用 socket()函數來創建…

基于Dubbo框架構建分布式服務

一、Dubbo服務集群容錯 假設我們使用的是單機模式的Dubbo服務,如果在服務提供方(Provider)發布服務以后,服務消費方(Consumer)發出一次調用請求,恰好這次由于網絡問題調用失敗,那么我…

vue樣式中背景圖片路徑_vue打包css文件中背景圖片的路徑問題

vue-cli寫完的靜態頁面我們在node環境中引入沒有問題,但是打包后放在Apache環境下,路徑卻有問題了如一個簡單css語句.all_bg {background: url(../images/all_bg.png) 0 0 no-repeat;display: inline-block;overflow: hidden;background-size: 200px 300…

如果我們不曾相遇

五月天的演唱會定的是9月10號,周六晚上7點。 而我,差不多,從一周前就開始準備了,因為公司最近在趕工,特別忙。為了周末不加班我提前一周就旁敲側擊地詢問師父的時間安排,最后又耿直地告訴師父我的周末計劃&…

win下php的memcached的安裝與使用

1、memcache的php擴展與memcached服務器的區別? php要操作memcached就必須要安裝memcache的擴展, 在http://windows.php.net/downloads/pecl/releases/memcache/下載相應版本安裝。 而php要操作memcached就必須要有memcached的服務,不然沒有服…

git 常用命令筆記

#提交代碼會加上用戶名和郵箱 git config --global user.name 名字 git config --global user.email 郵箱 git config --global color.ui true#列出所有配置 git config --list#創建一個repository(倉庫) git init #可以看到一個.git目錄 ls -A #復制一個已有的項目 git clone …

mysql 表的存儲類型_MySQL數據表存儲引擎類型及特性

數據表類型(存儲引擎)常見引擎比對 特點 Myisam InnoDB Memory BDB Archive 存儲限制 無窮制 64TB 有 沒有 沒有 事務安然 - 支撐 - 支撐 - 鎖機制 表鎖 行鎖 表鎖 頁鎖 行鎖 B樹索引 支撐 支撐 支撐 支撐 - 哈希索引 - 支撐 支撐 - - 全文索引 支撐 - - - - 集群索引 - 支撐 -…

78.Subsets

Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example,If nums [1,2,3], a solution is: [[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]昨天中秋加上頭非常痛,歇了一天…

python xyz_python中xyz坐標的歐幾里德距離

使用生成器表達式的簡單解決方案From PEP 289 Generator ExpressionsRationaleExperience with list comprehensions has shown their widespread utilitythroughout Python. However, many of the use cases do not need to have a full list created in memory. Instead, the…

[轉載]SYSCALL_DEFINE宏定義

來源:http://blog.csdn.net/p_panyuch/article/details/5648007 SYSCALL_DEFINE3 在何處定義? #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__) #define SYSCALL_DEFINEx(x, sname, ...) / _…

java連接數據庫sql server_將SQL Server數據庫連接到Java

我的項目沒有使用任何IDE。整個編碼使用Textpad完成。所以我需要幫助連接sql server數據庫和我的項目。這是bean類,其中編寫了用于數據庫連接的業務邏輯。我已經安裝了SQL服務器并使用Windows身份驗證創建了一個名為“vt”的數據庫。我甚至為數據庫創建了dsn&#x…

ORM中的Model與DDD中的DomainModel

0.引言 在現有的系統開發中,大部分的系統應該都會用到ORM,無論用的是EF還是NHibernate。作為對象和持久化數據的橋梁,ORM確實非常方便,以至于在DDD的時候,我們很自然的將 ORM中的Model(實體)表達成DDD中的 DomainModel…

基礎總結

Unsafe Java線程池 HashCode 垃圾收集 關于引用(弱引用、強引用等等)轉載于:https://www.cnblogs.com/aquariusm/p/6340303.html

jsp java語法_JSP基礎語法

Java JSP 的 JSP基礎語法在本章中,我們將了解和學習JSP語法。并了解JSP開發涉及的簡單語法(即元素)的基本用法。為了方便演示,使用Eclipse創建一個動態Web項目:jspsyntax,用于運行以下涉及到的示例代碼。JSP的元素JSP的元素如下所…

iOS - Core Animation 核心動畫

1、UIView 動畫 具體講解見 iOS - UIView 動畫2、UIImageView 動畫 具體講解見 iOS - UIImageView 動畫3、CADisplayLink 定時器 具體講解見 iOS - OC NSTimer 定時器CADisplayLink 是一個能讓我們以和屏幕刷新率相同的頻率將內容畫到屏幕上的定時器。我們在應用中創建一個新的…

navicat 官方使用手冊,中文版,快捷鍵大全

2017年1月23日09:52:51 這個官方中文文檔很詳細 https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual/index.html https://community.navicat.com/videos/cn 官方中文論壇部分視頻教程 快捷鍵 Navicat 主窗口 鍵動作CTRLG設置位置文件夾CTRL#(#…