Форум сайта python.su
Есть такой XML код:
<data> <items> <item name="item1">1</item> <item name="item2">2</item> <item name="item3">3</item> <item name="item4">4</item> </items> </data>
from xml.dom import minidom xmldoc = minidom.parse('items.xml') itemlist = xmldoc.getElementsByTagName('item') print(len(itemlist)) print(itemlist[0].attributes['name'].value) for s in itemlist: print(s.attributes['name'].value)
Офлайн
>>> import xml.dom.minidom >>> >>> doc = xml.dom.minidom.parseString('<item name="item1">1</item>') >>> doc <xml.dom.minidom.Document object at 0x7f78bdf2a228> >>> doc.firstChild <DOM Element: item at 0x7f78bdf2f638> >>> doc.firstChild.firstChild <DOM Text node "'1'"> >>> doc.firstChild.firstChild.nodeValue '1' >>>
8toni8Мне хватило выполнить
Или может быть существует инструкция на русском языке по описанию модуля xml.dom minidom ?
import xml.dom.minidom
help(xml.dom.minidom)
doc = xml.dom.minidom.parseString('<item name="item1">1</item>')
help(doc)
Отредактировано py.user.next (Янв. 2, 2018 12:49:44)
Офлайн
Большое спасибо, вроде разобрался. Вот что у меня получилось:
from xml.dom.minidom import * xml = parse('document.xml') name = xml.getElementsByTagName('value') for node in name: print node.childNodes[0].nodeValue
Офлайн
с lxml проще
pip3 install lxml
>>> from lxml import etree >>> doc='''<data> <items> <item name="item1">1</item> <item name="item2">2</item> <item name="item3">3</item> <item name="item4">4</item> </items> </data>''' >>> tree = etree.fromstring(doc) >>> path = tree.xpath('//item') >>> for i in path: print(i.tag,i.attrib,i.text) item {'name': 'item1'} 1 item {'name': 'item2'} 2 item {'name': 'item3'} 3 item {'name': 'item4'} 4
Офлайн
vic57Интерфейс для xpath есть и в библиотечном модуле xml.etree.ElementTree . Ну там он не полный, конечно, но тоже можно пользоваться.
с lxml проще
Офлайн
py.user.nextну и зачем?
Ну там он не полный, конечно, но тоже можно пользоваться.
делай одно, но делай это хорошо.мне lxml хватает и другого не надо
Отредактировано vic57 (Янв. 7, 2018 03:48:15)
Офлайн
vic57А есть такая фраза: не плоди сущности без необходимости.
делай одно, но делай это хорошо.
vic57Да, вещь хорошая, а потом тебе раз и скрипт надо запустить на Windows XP. Ты такой “ага, сейчас я поставлю lxml и всё будет нормально”. Начинаешь ставить, а он не ставится. Начинаешь его компилировать, а он не компилируется. Ну ошибки какие-то, а как их разрулить? У меня вот так было. Ощущения такие, будто на ноутбук воду проливаешь из стакана. То есть компьютер-то есть, но это просто кусок железа, а работать надо прямо сейчас. Вот после этого и наступает просветление: можешь написать через стандартную - пиши через стандартную. Вот у него случай как раз такой, заморочек сильных не нужно ему. Необходимости прямо такой в lxml нет.
мне lxml хватает и другого не надо
Отредактировано py.user.next (Янв. 7, 2018 03:54:59)
Офлайн
http://portablepython.com/
носится с собой, заводится с флешки
Отредактировано vic57 (Янв. 7, 2018 05:25:36)
Офлайн
vic57Вот возьми хостинг какой-нибудь и туда поставь его. Нужно вот прямо сейчас, чтобы твоё приложение работало в вебе.
носится с собой, заводится с флешки
Офлайн
:)
py.user.nextВариант конечно. Но не везде разрешен доступ в интернет, а во многих местах его физически нет, даже gprs.
Вот возьми хостинг какой-нибудь и туда поставь его
vic57Во многих местах кстати и флешку в местные компы не дадут совать (порты демонтированы).
носится с собой, заводится с флешки
Отредактировано doza_and (Янв. 7, 2018 09:26:55)
Офлайн