Bir Wordpress dışa aktarma belge ayrıştırmak için lxml.etree kullanmaya çalışıyorum (XML, biraz RSS gibi). Ben yayınlanan mesajların ilgileniyorum sadece, bu yüzden yayınlanan mesajların döngü aşağıdaki kullanıyorum.Etiketler: ile lxml içinde
for item in data.findall("item"):
if item.find("wp:post_type").text != "post":
continue
if item.find("wp:status").text != "publish":
continue
write_post(item)
data
tüm item
etiketleri bulunan etikettir item
etiketleri içeren yayınların, sayfalar ve taslaklar. Sorunum, lxml'nin adında :
olan etiketleri bulamamasıdır (ör. wp:post_type
). Ben KeyError : ':'
geçersiz olma etiketi adına kolon atıfta varsayalım
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "lxml.etree.pyx", line 1279, in lxml.etree._Element.find (src/lxml/lxml.e
tree.c:38124)
File "/usr/lib64/python2.7/site-packages/lxml/_elementpath.py", line 210, in f
ind
it = iterfind(elem, path)
File "/usr/lib64/python2.7/site-packages/lxml/_elementpath.py", line 200, in i
terfind
selector = _build_path_iterator(path)
File "/usr/lib64/python2.7/site-packages/lxml/_elementpath.py", line 184, in _
build_path_iterator
selector.append(ops[token[0]](_next, token))
KeyError: ':'
: Ben item.find("wp:post_type")
çalıştığınızda bu hatayı alıyorum. Lxml'nin doğru etiketi bulması için iki noktadan kurtulabilmemin bir yolu var mı? Bu bağlamda :
'un bazı özel anlamları var mı? Yoksa yanlış bir şey mi yapıyorum? Herhangi bir yardım takdir edilecektir.
Teşekkürler, bu benim sorunumu çözdü. –