我想阅读
之间的条目<dc:title> </dc:title>
这是xml:
<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="calibre-uuid">
<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata" xmlns:dc="http://purl.org/dc/elements/1.1/">
<meta name="calibre:series_index" content="1"/>
<dc:language>UND</dc:language>
<dc:creator opf:file-as="Unbekannt" opf:role="aut">Johann Wolfgang von Goethe</dc:creator>
<meta name="calibre:timestamp" content="2009-10-08T07:26:21"/>
<dc:title>Faust_I_</dc:title>
<meta name="cover" content="cover"/>
<dc:date>2009-10-08T07:26:21</dc:date>
<dc:contributor opf:role="bkp">calibre (0.6.13) [http://calibre-ebook.com]</dc:contributor>
<dc:identifier id="calibre-uuid">urn:uuid:3cd4b26f-39a3-4783-9730-a86c26b30818</dc:identifier>
那是我的代码:
from xml.etree import ElementTree as ET
tree = ET.parse('content.opf')
root = tree.getroot()
dc_namespace = "http://purl.org/dc/elements/1.1/"
print (root.attrib[ET.QName(dc_namespace, 'title')])
输出错误:
Traceback (most recent call last):
File "C:\Users\User\Documents\Visual Studio 2017\Projects\PythonApplication1\Modul1.py", line 8, in <module>
print (root.attrib[ET.QName(dc_namespace, 'title')])
KeyError: <QName '{xmlns:dc}title'>
出了什么问题?
答案 0 :(得分:2)
您正在寻找的内容(Last_6_Month Last_5_Month Last_4_Month Last_3_Month Last_2_Month Last_1_Month
------------ ------------ ------------ ------------ ------------ ------------
13 10 9 8 7 4
)是一个元素,而不是一个属性。以下是如何获得其价值的方法:
<dc:title>
输出:
from xml.etree import ElementTree as ET
tree = ET.parse('content.opf')
title = tree.find(".//{http://purl.org/dc/elements/1.1/}title")
print(title.text)
相关参考文献:
答案 1 :(得分:0)
你可以使用:
root[number][number]
访问元素。 例如在
中<base>
<element1>
<element2>asdada</element2>
</element>
</base>
root [0] [0]将给出u元素2