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

标签 python xml get

我使用的是 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”?手动解析字符串感觉工作量过大。但我没有在 minidom 中找到可与 .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'))

产量

smagnoni

关于Python。如何使用 libxml2 获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791503/

相关文章:

java - 圆形布局 : Cannot resolve method onCreate(android. os.Bundle)

php - 如何检查 $_GET 是否为空?

python - 将掩码应用于多维数组

python Pandas : How to replace values in a Dataframe based on another array in conditional base

python - 在 Python 中,是否有一种优雅的方法可以在没有显式循环的情况下以自定义格式打印列表?

javascript - 带有 XML ajax 的 BackboneJS

python - 使用 reload() 打破导入循环

C# JsonConvert SerializeXmlNode 空属性

javascript - 单击父元素外部的div时如何获取元素子元素中的值JQuery

c - 使用套接字向 C 中的本地 IP 进行 GET 请求