AndreyKS
Окт. 26, 2007 22:30:38
Python 2.51. Установил:
elementtree-1.2.6-20050316.win32.exe
pywin32-210.win32-py2.5.exe
Следущий код работает через раз. уПодскажите в чём ошибка, плжалуйста
.
—————————————————————–
tree = parse(“C:\\Temp\\test.xml”)
doc = tree.getroot()
print doc.tag
—————————————————————-
C:\\Temp\\test.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<document>
<group name=“Основное расписание звонков”>
<task>
<title>Звонок на первую пару</title>
<enabled>on</enabled>
<start_date>2007/10/23</start_date>
<end_date>2007/11/23</end_date>
<time>9:00</time>
<Monday>on</Monday>
<Tuesday>on</Tuesday>
<Wednesday>on</Wednesday>
<Thursday>on</Thursday>
<Friday>on</Friday>
</task>
<task>
<title>Звонок c первой пары</title>
<enabled>on</enabled>
<start_date>2007/10/23</start_date>
<end_date>2007/11/23</end_date>
<time>10:20</time>
<Monday>on</Monday>
<Tuesday>on</Tuesday>
<Wednesday>on</Wednesday>
<Thursday>on</Thursday>
<Friday>on</Friday>
</task>
<task_one>
<title>Начало соревнований</title>
<enabled>on</enabled>
<date>2007/10/25</date>
<time>15:20</time>
</task_one>
</group>
</document>
poltergeist
Окт. 27, 2007 00:28:28
1) зачем было ставить elementtree, если он и так по дефолту установлен в питоне 2.5???
2) у меня всё работает, вот примерно так:
>>> import xml.etree.cElementTree as eTree
>>> tree = eTree.parse('c:\\Temp\\temp.xml')
>>> root = tree.getroot()
>>> root.tag
'document'
>>>
Если у тебя появляется ошибка, выведи её сюда, посмотрим вместе.
AndreyKS
Окт. 29, 2007 20:49:35
В стандартном IDLE построчно работает. Пробовал вместо xml.etree.cElementTree ставить xml.etree.ElementTree - тоже работает.
Но когда сохраняю в файлы открываю его в этой же IDLE, выдаются ошибки.
————————————————-
import xml.etree.cElementTree as eTree
tree = eTree.parse('c:\\Temp\\test.xml')
root = tree.getroot()
root.tag
————————————————–
Traceback (most recent call last):
File “C:\Python25\atmel\xml.py”, line 1, in <module>
import xml.etree.cElementTree as eTree
File “C:\Python25\atmel\xml.py”, line 1, in <module>
import xml.etree.cElementTree as eTree
ImportError: No module named etree.cElementTree
Но построчно всё работает
>>> import xml.etree.cElementTree as eTree
>>> tree = eTree.parse('c:\\Temp\\test.xml')
>>> root = tree.getroot()
>>> root.tag
'document'
Подскажите, чем отличается xml.etree.cElementTree от xml.etree.ElementTree и что лучше использовать.
И почему из файла не работает. Пробовал кодировку указывать.
# -*- coding: UTF-8 -*-
import xml.etree.cElementTree as eTree
tree = eTree.parse('c:\\Temp\\test.xml')
root = tree.getroot()
root.tag
poltergeist
Окт. 29, 2007 22:18:26
Может всё-таки следует переименовать свой исходный файл “xml.py” в что-нибудь менее похожее на стандартный питоновский package “xml” :)
AndreyKS
Окт. 30, 2007 22:11:54
poltergeist
Может всё-таки следует переименовать свой исходный файл “xml.py” в что-нибудь менее похожее на стандартный питоновский package “xml”
спасибо!!!
Подскажите, чем отличается xml.etree.cElementTree от xml.etree.ElementTree и что лучше использовать.
poltergeist
Окт. 30, 2007 22:27:21
xml.etree.cElementTree - это сишная реализация ElementTree, она в несколько раз быстрее парсит xml, я ею и пользуюсь, но есть смысл использовать и стандартный питонский ElementTree, он универсальнее и видно как он работает (исходники не так уж велики и читаемы), так что вместе - это очень хороший и быстрый парсер.
Андрей Светлов
Окт. 31, 2007 00:04:48
конечно.
Это так же как:
StringIO - cStringIO
pickle - cPickle
и т.д.