Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2007 22:30:38

AndreyKS
От:
Зарегистрирован: 2007-10-26
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

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>



Офлайн

#2 Окт. 27, 2007 00:28:28

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

1) зачем было ставить elementtree, если он и так по дефолту установлен в питоне 2.5???
2) у меня всё работает, вот примерно так:

>>> import xml.etree.cElementTree as eTree
>>> tree = eTree.parse('c:\\Temp\\temp.xml')
>>> root = tree.getroot()
>>> root.tag
'document'
>>>


Если у тебя появляется ошибка, выведи её сюда, посмотрим вместе.



Офлайн

#3 Окт. 29, 2007 20:49:35

AndreyKS
От:
Зарегистрирован: 2007-10-26
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

В стандартном 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



Офлайн

#4 Окт. 29, 2007 22:18:26

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

Может всё-таки следует переименовать свой исходный файл “xml.py” в что-нибудь менее похожее на стандартный питоновский package “xml” :)



Офлайн

#5 Окт. 30, 2007 22:11:54

AndreyKS
От:
Зарегистрирован: 2007-10-26
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

poltergeist
Может всё-таки следует переименовать свой исходный файл “xml.py” в что-нибудь менее похожее на стандартный питоновский package “xml”
спасибо!!!

Подскажите, чем отличается xml.etree.cElementTree от xml.etree.ElementTree и что лучше использовать.



Офлайн

#6 Окт. 30, 2007 22:27:21

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

XML ElementTree Data Model

xml.etree.cElementTree - это сишная реализация ElementTree, она в несколько раз быстрее парсит xml, я ею и пользуюсь, но есть смысл использовать и стандартный питонский ElementTree, он универсальнее и видно как он работает (исходники не так уж велики и читаемы), так что вместе - это очень хороший и быстрый парсер.



Офлайн

#7 Окт. 31, 2007 00:04:48

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

XML ElementTree Data Model

конечно.
Это так же как:
StringIO - cStringIO
pickle - cPickle
и т.д.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version