анализ XML с Python, пространства имен значения ключа - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть файл XML, загруженный из Wordpress, который имеет следующую структуру:

<wp:postmeta>
   <wp:meta_key><![CDATA[country]]></wp:meta_key>
   <wp:meta_value><![CDATA[Germany]]></wp:meta_value>
</wp:postmeta>

Моя цель - просмотреть файл XML для всех клавиш country и распечатать значение. , Я совершенно не знаком с библиотекой XML, поэтому я ищу, где ее взять.

# load libraries
# importing os to handle directory functions
import os
# import XML handlers
from xml.etree import ElementTree
# importing json to handle structured data saving
import json

# dictonary with namespaces
ns = {'wp:meta_key', 'wp:meta_value'}

tree = ElementTree.parse('/var/www/python/file.xml')
root = tree.getroot()

# item
for item in root.findall('wp:post_meta', ns):
    print '- ', item.text

print "Finished running"

Это выдает ошибку при использовании wp в качестве пространства имен, но я не уверен, где до go отсюда документация мне непонятна. Любая помощь приветствуется. Downvoters, пожалуйста, дайте мне знать, как я могу улучшить свой вопрос.

1 Ответ

0 голосов
/ 29 апреля 2020

Я не знаю XML, но я могу трактовать это как строку.

from simplified_scrapy import SimplifiedDoc, req, utils
xml = '''
<wp:postmeta>
   <wp:meta_key><![CDATA[country]]></wp:meta_key>
   <wp:meta_value><![CDATA[Germany]]></wp:meta_value>
</wp:postmeta>
'''
doc = SimplifiedDoc(xml)
kvs = doc.select('wp:postmeta').selects('wp:meta_key|wp:meta_value').html
print (kvs)

Результат:

['<![CDATA[country]]>', '<![CDATA[Germany]]>']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...