参考:
https://blog.youkuaiyun.com/weixin_39274753/article/details/82221859#commentBox
https://www.cnblogs.com/hupeng1234/p/7262371.html
一、ElementTree解析svg,XML
1、元素查找方法find,findall,iter,iterfind
一、match为tag;不含子节点,返回第一个/所有匹配的Element;可查找特定属性attrib[@id="title1"]
find(match)
findall(match)
二、含子节点,返回所有匹配的,不查找特定属性。深度遍历。以当前元素为根节点 创建树迭代器,如果tag不为None,则以tag进行过滤
iter(tag=None)
三、不含子节点,返回所有匹配的。可查找属性。
iterfind(match)
### 导入依赖包
import xml.etree.ElementTree as etree
# 打开文件
tree = etree.ElementTree(file=r'test.svg') # 保证每次操作均为原始model文件
root = tree.getroot() # 获取根元素
# find , findall
# 在test.svg中添加以下内容:
# <g id="switch">
# nihao
# </g>
# findall
# 所有tag,输出列表,for循环列出,不包含嵌套
elems = root.findall('{http://www.w3.org/2000/svg}g[@id="switch"]')
print(elems)
for elem in elems:
print(elem.tag, elem.attrib, elem.text)
# find
# 第一个tag
elem = root.find('{http://www.w3.org/2000/svg}g[@id="switch"]')
print(elem)
print(elem.tag, elem.attrib, elem.text)
output:
findall:
[<Element '{http://www.w3.org/2000/svg}g' at 0x00000000070EE688>, <Element '{http://www.w3.org/2000/svg}g' at 0x00000000070EE868>]
{
http://www.w3.org/2000/svg}g {
'id': 'switch'}
{

本文详细介绍了Python的xml.etree.ElementTree模块在解析SVG和XML文件中的应用,包括find、findall、iter、iterfind等方法的使用,以及XPath查询。通过实例展示了如何查找元素、操作属性、添加和删除子元素。此外,还提到了利用iterparse解析XML流以解决内存问题,并给出了SVG字体对照列表。
最低0.47元/天 解锁文章
305

被折叠的 条评论
为什么被折叠?



