Python lxml解析svg文件

2024-02-10

我正在尝试解析 .svg 文件http://kanjivg.tagaini.net/ http://kanjivg.tagaini.net/,但我无法成功提取里面的信息。

Edit 1:(完整文件)http://www.filedropper.com/0f9ab http://www.filedropper.com/0f9ab

一部分0f9ab.svg看起来像这样:

<svg xmlns="http://www.w3.org/2000/svg" width="109" height="109" viewBox="0 0 109 109">
<g id="kvg:StrokePaths_0f9ab" style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;">
<g id="kvg:0f9ab" kvg:element="嶺">
    <g id="kvg:0f9ab-g1" kvg:element="山" kvg:position="top" kvg:radical="general">
        <path id="kvg:0f9ab-s1" kvg:type="㇑a" d="M53.26,9.38c0.99,0.99,1.12,2.09,1.12,3.12c0,0.67,0.06,8.38,0.06,13.01"/>
        <path id="kvg:0f9ab-s2" kvg:type="㇄a"
    </g>
</g>
</g>

我的 .py 文件:

import lxml.etree as ET

svg = ET.parse('0f9ab.svg')
print(svg)  # <lxml.etree._ElementTree object at 0x7f3a2f659ec8>

# AttributeError: 'lxml.etree._ElementTree' object has no attribute 'tag'
print(svg.tag)

# TypeError: 'lxml.etree._ElementTree' object is not subscriptable
print(svg[0])

# TypeError: 'lxml.etree._ElementTree' object is not iterable
for child in svg:
    print(child)

# None
print(svg.find("./svg"))

# []
print(svg.findall("//g"))

# []
print(svg.xpath("//g"))

Purpose

我尝试了我能想到的各种操作,但没有任何方法可以从 .svg 文件中获取任何数据。 我想提取汉字(日语字符)kvg:element="kanji"(处于不同的深度级别)。

Question

  1. 正在使用lxml这是错误的包吗?
  2. 如果没有,如何从解析的 .svg 文件中提取信息?

其他解决方案

  • 我当然可以将文件作为字符串读取并搜索 为了kvg:element=",但我想要提取 xml 的正确方法 /svg。
  • I used xmltodict之前,但我的代码在提取时变得非常混乱kvg:element,因为它们处于不同的深度级别。

.parse()返回一个元素树 http://lxml.de/tutorial.html#the-elementtree-class,它代表整个树。要查询单个节点,您需要Element http://lxml.de/tutorial.html#the-element-class,很可能是树的根元素。

将部分代码替换为:

xml = ET.parse('0f9ab.svg')
svg = xml.getroot()
print(svg)  # <lxml.etree._ElementTree object at 0x7f3a2f659ec8>

我想你会取得一些成功的。

另请注意.findall()需要相对路径,并且在您的情况下还需要命名空间限定符:

print(svg.findall(".//{http://www.w3.org/2000/svg}g"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python lxml解析svg文件 的相关文章

  • 在Python中不断寻找用户输入

    我将如何编写一个始终寻找用户输入的 Python 程序 我想我希望有一个等于输入的变量 然后根据该变量的等于值会发生不同的情况 因此 如果变量是 w 那么它将执行某个命令并继续执行 直到收到另一个输入 例如 d 然后会发生不同的情况 但直到
  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • python blpapi安装错误

    我试图根据 README 中的说明为 python 安装 blpapi 3 5 5 但是在运行时 python setup py install 我收到以下错误 running install running build running b
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 如何在seaborn中绘制离散变量的分布图

    当我画画的时候displot对于离散变量 分布可能不像我想象的那样 例如 We can find that there are crevices in the barplot so that the curve in kdeplot is
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 如何在每次运行 python 程序时添加新列

    我希望我的表的第一列作为卷号 第二列作为名称 每当我运行 python 程序时 我想在表中添加一列日期 在这个新列中 我想填充从 user list 获得的列表将包含值 P A P P 等 如何处理 我尝试首先通过 alter 命令添加一列
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • Django - 使 ModelForm(ImageField 的)仅接受某些类型的图像

    我将 Pillow 2 3 0 与 Django 一起使用 并且在 models py 中有一个 ImageField 如下所示 class UserImages models Model user models ForeignKey Us
  • 使用 Python 导入包含文本和数字数据的文件

    I have a txt file which has text data and numerical data The first two rows of the file have essential information in te
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • Pandas 中的数据透视表小计

    我有以下数据 Employee Account Currency Amount Location Test 2 Basic USD 3000 Airport Test 2 Net USD 2000 Airport Test 1 Basic
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • Django:显示管理员验证错误的自定义错误消息

    我正在使用 Django 1 2 4 我有一个模型 其中有一个需要验证的字段 当验证失败时 我想向用户显示自定义错误消息 模型编辑是在管理界面中完成的 这就是我目前正在做的事情 def clean fields self exclude N
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码
  • 具有重复值的 Sqlite 列

    就说专栏吧aSQLite 数据库的非常重复 始终有相同的 4 个值 其他值可能稍后出现 但不同值的数量将少于 1000 个 VALUES hello world it s a shame to store this str many tim
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu

随机推荐

  • 无法在 Mac 上访问 std 向量迭代器 _Ptr

    在 Visual Studio 上 这段代码就像一个魅力 auto child node childs begin while child node childs end vector
  • Matlab 样条插值 从 Y 中找到 X

    我需要找到当 y 0 时 x 的值 这是我的代码 x 2 3 4 5 6 y 10 8 4 1 2 xi linspace 2 6 100 yi interp1 x y xi spline plot x y o xi yi xlabel x
  • Rails:查找父对象的所有关联对象

    我在 Rails 中创建了一个复杂的对象 其主要父对象 Resume 它的每个部分都有多个子对象 objective section contact section 等 有没有一种方法可以将所有关联的对象获取到父对象恢复 如果 获取 是指在
  • RESTful API 密钥建议 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找有关 RESTful API 设计的建议 我已经阅读了很多有关 REST API 方案 身份验证 授权方式等的内容 我无法决定的是我是
  • 如何最大化背景窗口?

    我需要最大化背景中的窗口 这意味着不激活 聚焦 它 SetWindowPlacement 函数不提供此功能 有任何想法吗 WINDOWPLACEMENT wp new WINDOWPLACEMENT GetWindowPlacement h
  • 程度报告问题并行测试

    我有以下报告代码 public class Reporting private ExtentHtmlReporter extentHtmlReporter private static ThreadLocal
  • 如何在 React Native 中获取组件在屏幕上的位置?

    我正在开发一个反应本机应用程序 我想处理屏幕上的触摸 一个用例是当用户在屏幕上 按下 时 我希望能够获取屏幕上特定组件的位置 x y 以了解它是否与触摸的 x y 匹配 我已经搜索过堆栈溢出 但给定的解决方案都不起作用 在我的根组件中 on
  • 分析 pyomo 中的解决方案 (.sol) 文件

    我在机器 1 中有一个 pyomo 模型 在机器 2 中有 CPLEX 求解器 我转换 pyomo 模型 ConcreteModel 变成problem lp带有函数的文件model write problem lp 在机器 1 中 然后我
  • jQuery 在两个类之间滚动切换

    默认情况下 我有一个具有红色背景颜色的导航栏 我想要做的是 当用户向下滚动超过 100px 将背景更改为蓝色 并且如果他返回到 0px 将背景更改为其默认状态 例如 我想通过在两个类之间切换来做到这一点 div class navigati
  • perl + 如何声明数组

    以下脚本 test pl 在 myfile txt 文件的 first line 1 和 second line 1 之间附加 insert 1 文本 并将输出发送到 output txt 但如果我将数组声明为 my first line
  • 尝试在flutter中创建不同语言的pdf

    我想在 PDF 中打印印地语 我也尝试过使用 Google 的 Raleway Regular ttf 字体 但也没有成功 final font await rootBundle load fonts ARIAL TTF final ttf
  • 我的 SQLite 语法错误

    SQLite 新手 所以我不知道我做错了什么 我刚刚收到一条错误消息 SQLSTATE HY000 General error 1 near CREATE syntax error 这是我的 SQL CREATE TABLE users i
  • 如何转置 MySQL 行和重复列标题?

    我有一个 mysql 表 如下所示 id group id item code item label item detail item score 1 10 BLU123 Blue 123 Blah blah 123 3 2 10 BLU1
  • 我可以让实时 PHP 数据显示在 jquery 对话框中吗?

    我正在尝试将两种想法结合起来 但我不确定它们是否相互兼容 想法一 让 php 脚本运行命令 例如 ping 并在 Web 浏览器中提供命令的实时结果 想法2 出现一个 jQuery 对话框 打开时运行 php 脚本并在对话框中提供实时结果
  • 如何从 Diego 上的 Cloud Foundry 提取文件

    我想检索一些应用程序的日志 我发现这个命令cf file不再可用 该插件cf download 不适用于迭戈建筑 https github com ibmjstart cf download issues 12 有没有办法通过 CLI 其他
  • 检查静态库的iOS部署目标

    我有很多静态库 比如libBlah a With file我可以检查支持的架构的工具 arm64 或 i386 有没有工具可以检查iOS Deployment Target静态库的 您可以使用otool检查库文件 通过一些实验我发现标志 l
  • 小米等智能手环官方SDK/API

    我们想要开发一个 Android 应用程序来支持 MiBand 和其他智能手环 我们希望通过 BLE 从智能手环获取心率等信息 并将其显示在移动应用程序中 我们如何从设备获取这些信息 有官方的SDK或者API吗 还有一个 huami tec
  • Hibernate/JPA 中批量插入 CollectionTable 元素

    我们使用 Hibernate 4 2 作为 JPA 2 0 实体的支持库 我们有一个如下所示的实体 Entity public class MyEntity ElementCollection MapKeyColumn name key C
  • 为什么我的交易没有升级为 DTC?

    我的机器上禁用了 DTC 据我了解 这段代码应该失败 因为它在同一事务中使用两个数据上下文 那么 它为什么有效呢 注意 我使用 NET 3 5 和 NET 4 0 尝试过此操作 using TransactionScope transact
  • Python lxml解析svg文件

    我正在尝试解析 svg 文件http kanjivg tagaini net http kanjivg tagaini net 但我无法成功提取里面的信息 Edit 1 完整文件 http www filedropper com 0f9ab