python类库[使用xml.etree.ElementTree读写xml]

XXE漏洞攻防实战:从原理到高级利用与防御 XML(可扩展标记语言)作为数据交换的基石,其强大的可扩展性源于DTD(文档类型定义)和实体机制。然而,当XML解析器默认启用外部实体加载功能时,攻击者便能利用XML外部实体注入(XXE)漏洞,将便利的“宏”机制转变为危险的攻击向量。该漏洞的核心技术价值在于,它允许攻击者通过构造恶意实体,读取服务器敏感文件、发起SSRF攻击探测内网,甚至实现远程代码执行,严重威胁应用安全。在金融数据交换、企业级应用、SOAP协议及Office文档处理等广泛使用XML的场景中,XXE漏洞因其攻击面广、危害大而备受关注。本文聚 阅读详情



一 基本知识 
1、插入节点 
Element.insert(index, element) 、Element(tag[, attrib][, **extra]) 、SubElement(parent, tag[, attrib[, **extra]]) 、Element.append(subelement) 
2、删除节点 
Element.remove(subelement) 删除一个节点、Element.clear()删除该节点下所有子节点 
3、在节点中插入属性 
Element.set(key, value)

4、查找节点

a) Element.getiterator   b) Element.getchildren   c) Element.find   d) Element.findall

 

二 读取xml

1)xml为

复制代码

<?xml version="1.0" encoding="UTF-8"?>
 <employees> 
  
<employee id = '1'> 
    
<name>linux</name>
    <age>30</age>
  </employee>
  <employee id = '2'> 
    
<name>windows</name>
    <age>20</age>
  </employee>
 </employees>

复制代码

 

 

2)python脚本为

复制代码

from xml.etree import ElementTree

def print_node(node):
    
print "====================================="
    for key,value in node.items():
      
print "%s:%s" % (key, value)   
    
for subnode in node.getchildren():
      
print "%s:%s" % (subnode.tag, subnode.text)   

def read_xml(text = '', xmlfile = ''):
    
#root = ElementTree.parse(xmlfile)
    root = ElementTree.fromstring(text)
    
    
# 1 getiterator([tag=None]) 
    # only elements whose tag equals tag are returned from the iterator
    eitor = root.getiterator("employee")
    
for e in eitor:
        print_node(e)
    
    
# 2 getchildren()
    # Returns all subelements
    eitor = root.getchildren()
    
for e in eitor:
        print_node(e)  
    
    
# 3 findall(match) 
    # Finds all subelements matching match. 
    # match may be a tag name or path. Returns an iterable yielding all matching elements  
    node_findall = root.findall("employee")
    
for e in node_findall:
        print_node(e)

    
# 4 find(match) 
    # Finds the first subelement matching match. 
    # match may be a tag name or path. Returns an element instance or None 
    node_find = root.find('employee')
    print_node(node_find)
    


if __name__ == '__main__':
    read_xml(open(
"employees.xml").read()) 

复制代码

 

 

参考:

http://blog.youkuaiyun.com/kiki113/archive/2009/04/06/4052584.aspx

 

完!

Visual Studio项目文件版本转换实战:从.csproj兼容性到自动化升级 在软件开发中,项目文件是定义项目结构、依赖和编译配置的核心元数据,其格式兼容性直接影响跨版本协作与持续集成。以Visual Studio的.csproj文件为例,它本质上是基于MSBuild的XML配置文件,其版本差异主要体现在ToolsVersion、TargetFramework和项目结构(如SDK风格迁移)等关键属性上。理解这些差异的原理,有助于实现项目在不同IDE版本间的平滑迁移,从而保障团队协作效率和构建流水线的稳定性。本文聚焦于.csproj文件的版本转换,通过对比新旧版本的结构差异,解析自动化 阅读详情

相关推荐

Python3 xml.etree.ElementTree支持的XPath语法详解

主要介绍了Python3 xml.etree.ElementTree支持的XPath语法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

xml.etree.ElementTree 操作 xml文件

xml.etree.ElementTree 操作 xml文件

dadadachai的博客 1676

Python与numpy版本兼容性排查指南

本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。

weixin_29089057的博客 319

python学习(二) ElementTree解析、读写、创建xml文件

python学习(二) 读写xml文件 1.xml格式 将其存储为sample.xml  Tag:使用&lt;&gt;包围的部分  Element:被Tag包围的部分,例如22中的22  Attribute:在Tag中可能存在的name/value对,如'name':'Blue' 2.解析XML 以下都是使用ElementTree处理XML  from xml.etree import ...

qq_35153620的博客 1万+

Xilinx Blockset Counter计数器模块使用及参数配置

本文详细介绍了Simulink中Xilinx Blockset库Counter模块的使用以及参数说明。

白码王子小张的博客 1096

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1052

python xml.etree.ElementTree之·设置并生成xml·解析xml

python xml 生成 解析 Elementtree

wphkadn的博客 929

monocle3-单细胞轨迹分析在疾病研究中的应用

本文深入探讨了monocle3在单细胞轨迹分析中的核心应用,特别是在疾病研究领域。通过实战案例,详细讲解了如何利用monocle3进行轨迹推断,构建细胞状态演变的“路线图”,并结合伪时间分析定位疾病进展阶段。文章还介绍了如何挖掘驱动疾病发展的关键基因,并分享了数据整合、根节点选择等进阶技巧与避坑指南,旨在帮助研究者利用这一强大工具揭示肿瘤异质性、免疫治疗耐药等复杂生物学过程的动态机制。

a3b4c5的博客 639

python xml解析之xml.etree.ElementTree(个人总结,不喜勿喷)

之前做odoo的时候,遇到一个需求,就是通过自定义视图字段的显示名称和显示属性invisible,然后用了一个最直接,最笨的方法,就是通过字符串的定位,截取,拼接,修改视图的arch_base,就是视图结构的字符串,然后想通过python的某个库来实现xml的解析,去达到目的,这次使用的是xml.etree.ElementTree,如果有看法,请评论,互相学习: from xml.etree ...

wanan的博客 6476

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

m0_51579041的博客 1万+

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》(Semiconductor devices - Discrete devices - Part 8: Field-effect transistors)。该标准详细规定了场效应晶体管(FETs)的测试方法,涵盖静态和动态特性测试,适用于多种类型的FET,包括结型场效应晶体管(JFETs)、绝缘栅场效应晶体管(MOSFETs,增强型和耗尽型)等。3. 标准其他部分(简要概述)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 576

xml.etree.ElementTree对xml文件的基本处理操作

xml.etree.ElementTree对xml文件的基本处理操作

weixin_42734533的博客 920

PCB仿真软件:Altium Designer_(18).PCB设计中的热管理

在PCB设计中,热管理是一个至关重要的环节。随着电子设备的集成度越来越高,功耗和发热量也随之增加,不合理的热设计可能导致电路板过热,从而影响电路的性能和可靠性。热管理不仅能够提高电路板的使用寿命,还能确保电路在各种环境条件下的稳定工作。本节将详细介绍如何在Altium Designer中进行有效的热管理,包括热分析、热设计和热仿真等关键步骤。

kkchenjj的博客 1986

python类库31[使用xml.etree.ElementTree读写xml]

一 基本知识 1、插入节点 Element.insert(index, element) 、Element(tag[, attrib][, **extra]) 、SubElement(parent, tag[, attrib[, **extra]]) 、Element.append(subelement) 2、删除节点 Element.remove(subelement) 删除一个节点、Eleme

http://itech.cnblogs.com 641

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

21、Python如何读写XML

可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。就像其他格式一样,只要你了解这个格式的所有语法和用法,你就可以通过字符串解析和拼接的方式,读取和写入xml文件或字符串,当然这种方式特别不方便,那python有没有为我们提供类库呢?xml.etree.ElementTree是处理XML文件的首选库,因其轻量级和易用性,适合大多数XML读写任务。下面介绍一下如何利用。

做一些技术文章分享,希望和大家共同进步 605

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python类库31[DOM+SAX解析XML和HTML]

Standard Generalized Markup Language (SGML)即标准通用标记语言Hypertext Markup Language (HTML)超文本标识语言Extensible Markup Language (XML)可扩展标识语言SGML,HTML,XML都可以使用以下的SAX和DOM方式来解析:SGML是现时常用的超文本格式的最高层次标准,是可以定义标记...

weixin_30410119的博客 83

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python创建xml小工具_python创建xml文件

本文是一个使用ElementTree有关类库,生成xml文件的例子# *-* coding=utf-8from xml.etree.ElementTree import ElementTreefrom xml.etree.ElementTree import Elementfrom xml.etree.ElementTree import SubElementfrom xml.etree.Elem...

weixin_36143628的博客 162

python 读取并解析xml文档,生成xml文档

【代码】python 读取并解析xml文档,生成xml文档。

qq_42731393的博客 473

python 各种解析xml包使用方法总结

http://outofmemory.cn/code-snippet/914/python-kinds-jiexi-xml-bao-usage-method-summary 使用python开发时,由于python的开源生态圈非常的给力,对于实现同一个功能,往往在这方面的类库非常多,而开发者也同样面临着如何选择最佳的 类库作为辅助开发的工具。本文将记录本人在使用python处理xml格式数据

7632

python 解析xml包使用方法总结

使用python开发时,由于python的开源生态圈非常的给力,对于实现同一个功能,往往在这方面的类库非常多,而开发者也同样面临着如何选择最佳的 类库作为辅助开发的工具。本文将记录本人在使用python处理xml格式数据时测试过的类库,有些类库由于先天不足,无法支持一些特性,涉及的类库或模 块有xml(python自带)、libxml2 、lxml 、xpath 。 附注:本文处理xml格式

大树叶 技术专栏 1589

Python爬虫(十二)_XPath与lxml类库

Python学习指南 有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素。 什么是XML XML指可扩展标记语言(Extensible Markup Language) XML是一种标记语言,很类似HTML XML的设计宗旨是传输数据,...

weixin_30725467的博客 115

python 爬虫

做一个简易的爬虫软件 一 1 项目简介: 本项目利用了python的一个程序脚本去抓取一些网络上的数据,并且可以将爬取到的数据存入本地的数据库中,然后将数据库里的数据读取出来并且做成一个可以直观看到数据和变化的图表。 1.1 本文博客地址: https://editor.csdn.net/md?articleId=103560331 1.2 简述项目的要完成的功能与特色 本项目主要爬取某电影网站的...

aballoona的博客 185

(二)Python创建、修改、保存XML文件——xml.etree.ElementTree模块

XML tree and elements XML是一种固有的分层数据格式,最自然的表示方法是使用树。ET有两个类为此目的—ElementTree表示整个XML文档为树,元素表示此树中的单个节点。与整个文档的交互(读取和写入文件)通常是在ElementTree级别上完成的。与单个XML元素及其子元素的交互是在元素级别上完成的。 读入xml格式的文件,并显示全部行数据: from xml.etree import ElementTree as ET file_xml = r'/Users/edz/Docu

Yale-曼陀罗 2万+
上一篇: XML生成与解析(DOM、ElementTree)
下一篇: Python标准库之xml.etree.ElementTree
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值