Python。如何使用libxml2获取属性值

2023-12-28

我使用的是 MINIDOM,但它不提供 xpath 方法。

我现在尝试使用 libxml2,但在检索属性值时遇到问题。

我的 xml 摘录如下:

<Class name="myclass1" version="0">
    <Owner user-login="smagnoni"/>
</Class>

我写了以下代码:

import libxml2
doc = libxml2.parseFile(file)
ris = doc.xpathEval('*/Class[@name="'+className+'" and @version="'+classVersion+'"]/Owner')
print str(ris[0])

返回:

<Owner user-login="smagnoni"/>

我怎样才能得到“smagnoni”?手动解析字符串感觉劳累过度。但我没有找到类似的方法.getAttribute("attribute-name")在迷你王国中。

任何人都可以建议正确的方法或指导我查看文档吗?


.prop('user-login')应该管用:

import libxml2
import io
content='''\
<Class name="myclass1" version="0">
    <Owner user-login="smagnoni"/>
</Class>
'''
doc = libxml2.parseMemory(content,len(content))
className='myclass1'
classVersion='0'
ris = doc.xpathEval('//Class[@name="'+className+'" and @version="'+classVersion+'"]/Owner')

elt=ris[0]
print(elt.prop('user-login'))

yields

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

Python。如何使用libxml2获取属性值 的相关文章

随机推荐

  • 通过多个套接字传输文件是否比仅使用一个套接字更快?

    在这个旧 从 2002 年开始 它说如果您将一个文件分成多个块 然后使用不同的套接字传输每个块 那么它的到达速度将比使用一个套接字将其作为一个整体传输要快得多 我还记得 很多年前 读过一些下载管理器也使用这种技术 这有多准确 鉴于具有大窗口
  • Rails - 如何更新控制器中的单个属性

    我是 Rails 新手 正在尝试完成一项简单的任务 我想在图像单击时切换布尔属性 完成 在我看来 我的链接如下所示 我添加了一条路线 如下所示 resources calendars do get toggle done on gt mem
  • 在 swift 中使用带有多个参数的闭包

    这个问题主要是基于这个 Link https stackoverflow com questions 24031084 closures return value previously completionblock 主要区别在于我也想将参
  • Objective-C NSString 对象中需要转义的字符

    想要知道整个字符集 其字符必须在 Objective C NSString 对象中转义才能正确识别 例如 必须转义为 as in NSString temporaryString That book is dubbed as the lit
  • 如何自定义 Visual Studio 解决方案资源管理器右键菜单选项?

    从我记事起 我就一直在使用 Visual Studio 多年来 每个新版本都出现了越来越多的选项添加到解决方案资源管理器的右键单击上下文菜单中的趋势 99 的时间我只使用其中 5 的上下文菜单选项 我想知道是否可以从上下文菜单中删除项目 例
  • Spring Batch 事务异常:在 JobRepository 中检测到现有事务

    我正在尝试这个并得到异常 java lang IllegalStateException 在 JobRepository 中检测到现有事务 请修复此问题并重试 例如 从客户端删除 Transactional 注释 有没有人遇到过这个问题 T
  • 带有 war 文件的 Spring 应用程序属性配置文件

    我正在尝试将我的项目打包在 war用于 tomcat 服务器部署 我需要有能力使用我的application properties OR application dev properties OR appliation qa propert
  • Jenkins Git fatal:无法访问“https://URL.git”:SSL 证书 p‌r‌o‌b‌l‌e‌m:自签名证书

    我们新安装了 Jenkins 和 Bitbucket 服务器 它们使用本机自签名证书运行 When I try to clone the repository with windows command prompt it is gettin
  • Ajax 就绪状态 3(Chrome / IE)

    我正在和一些人玩comet and mxhr技术 事实证明 Chrome 5 实际上会发射一个readystate 3 但是responseText总是empty there 直到今天我还以为只是InternetExplorers 我这里错
  • 高性能缓存

    以下代码应该缓存上次读取的内容 这LastValueCache是一个可以被许多线程访问的缓存 这就是我使用共享内存的原因 对我来说 有竞争条件是可以的 但我希望其他线程能够看到更改LastValueCache class Repositor
  • Java日历日期错误

    谁能帮我理解为什么我得到不同的月份值 SimpleDateFormat dateFormat new SimpleDateFormat dd MM yyyy System out println dateFormat format cal
  • 如何加快从mysql到neo4j的插入速度?

    我在 mysql 中有一个包含 60000 个项目的数据集 我正在尝试将其插入 Neo4j 中 插入正在进行 但需要很长时间 大约每 3 秒 10 15 次 有什么办法可以加快速度吗 还有什么方法可以让我在 Neo4j 中提供诸如唯一键之类
  • 在 postgresql 中删除停用词而不进行词干化

    我想从数据中删除停用词 但我不想阻止这些词 因为确切的词对我很重要 我用了这个查询 SELECT to tsvector english colName from tblName order by lower asc 有什么方法可以在不阻止
  • 实体框架 6:将子对象添加到父对象的列表与将子对象的导航属性设置为父对象

    我有一个包含两个表的现有数据库MailServers and MailDomains in it MailDomains有外键列MailServerId指向Id主键列在MailServers 所以我们这里有一对多的关系 我跟着本文 http
  • Python:使用 setproctitle 更改进程名称

    我有一个 python 脚本 它启动许多 C 程序 每个程序都会传递一个命令行参数 如下所示 process path test process name test num process 10 for p in range 1 num p
  • Sequelize:如何在使用左外连接的连接表上执行 WHERE 条件

    我的数据库模型如下 员工驾驶一辆或零辆车辆一辆车可以由一名或多名员工驾驶车辆有一个模型类型 可以告诉我们它的燃料类型以及其他信息 我想要续集为我找到所有不开车的员工 或者如果他们开车 那么车辆不是柴油车 因此 其中 VehicleID 为
  • 带有 SharePoint 参数的 VB.Net 命令行(控制台)程序

    我想在 VB net 中创建一个允许参数的控制台程序 我想要做的是在下面的代码中添加参数 以便可以从 运行 菜单创建 Web 部件页面 例如C MyProgram exe Design 这将创建 Design Webpart 页面 我尝试在
  • 删除图中的文本

    我正在使用绘图功能sizetree from library plotrix 版本 3 8 1 这个函数有一个showcount允许括号中的一些计数显示在绘图上的参数 见下图 但我想知道为什么当我使用showcount FALSE 它们周围
  • Python 游戏网络

    我目前在寻找网络游戏编程资源时遇到困难 特别是Python 我不知道任何其他语言 我在 Python 中发现了很多关于通用网络的东西 但我不确定这就是我需要的 因为我相信游戏网络还涉及一些其他因素 我正在尝试创建一个在不同计算机上玩的 2
  • Python。如何使用libxml2获取属性值

    我使用的是 MINIDOM 但它不提供 xpath 方法 我现在尝试使用 libxml2 但在检索属性值时遇到问题 我的 xml 摘录如下