假设我有以下xml:
<package xmlns="http://example/namespace">
<rating system="au-oflc">PG</rating>
...
</package>
要获取上述元素的文本,我将执行以下操作:
from lxml import entree
f = open('/Users/David/Desktop/metadata.xml')
metadata_contents = f.read()
node = etree.fromstring(metadata_contents)
rating = node.xpath('//t:rating/text()', namespaces = {'t':'http://example/namespace'})
>>> rating
['PG']
我如何获得“au-oflc”值?
答案 0 :(得分:8)
您需要检索节点本身,而不是文本:
rating = node.xpath('//t:rating', namespaces = {'t':'http://example/namespace'})
print rating[0].attrib['system']
答案 1 :(得分:1)
您还可以使用XPath访问该属性:
system = node.xpath('//t:rating/@system', namespaces = {'t':'http://example/namespace'})
print system[0]
答案 2 :(得分:1)