Форум сайта python.su
0
Здравствуйте. Новичек в python.
Есть XML файл,который надо загрузить в таблицу если его упросить, то вид я написал ниже.
не понятно как получить набор данных чтобы сформировать скл запрос вида
insert into tbl (article,orgId) values ('100004',2213),values ('100006',2213))
Накатал такой код, но не пойду как получить родительский orgId?
xml = ‘'’<?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?>
<services>
<service orgId=“2213”>
<service article=“100004”/>
<service article=“100006”/>
</service>
</services>'''
from lxml import etree
tree = etree.XML(xml)
nodes = tree.xpath('/services/service/service')
for node in nodes:
print node.values()
Спасибо.
Офлайн
857
>>> import lxml.etree >>> >>> s = b"""\ ... <?xml version="1.0" encoding="UTF-8" standalone="yes"?> ... <services> ... <service orgId="2213"> ... <service article="100004"/> ... <service article="100006"/> ... </service> ... <service orgId="2214"> ... <service article="100005"/> ... <service article="100007"/> ... </service> ... </services> ... """ >>> >>> doc = lxml.etree.fromstring(s) >>> >>> for node in doc.xpath(r'.//service[@orgId]'): ... name = node.attrib['orgId'] ... nums = node.xpath(r'./service/@article') ... out = [name] + nums ... print(out) ... ['2213', '100004', '100006'] ['2214', '100005', '100007'] >>>
Отредактировано py.user.next (Март 24, 2016 16:28:08)
Офлайн