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.mzph.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#(#…