我使用的是 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/