Skip to forum content
PyDev
Форум python-разработчиков
You are not logged in. Please login or register.
Root
»
Базы данных, XML
»
не парсится xml файл
Pages:
You must log in or register to post a new topic
Posts [ 1 to 9 of 9 ]
- Registered: 2009-05-13 16:40:15
- Posts: 6
вот такой код
# -*- coding: UTF-8 -*-
import xml.sax.handler
parser = xml.sax.make_parser( )
parser.parse("air1_0511.xml")
выдает
D:\>exa.py
Traceback (most recent call last):
File "D:\exa.py", line 7, in <module>
parser.parse("air1_0511.xml")
File "C:\Python25\lib\xml\sax\expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "C:\Python25\lib\xml\sax\xmlreader.py", line 123, in parse
self.feed(buffer)
File "C:\Python25\lib\xml\sax\expatreader.py", line 211, in feed
self._err_handler.fatalError(exc)
File "C:\Python25\lib\xml\sax\handler.py", line 38, in fatalError
raise exception
xml.sax._exceptions.SAXParseException: air1_0511.xml:4:116: not well-formed (inv
alid token)
Как бы мне разобрать это xml(во вложении)?
- Registered: 2009-05-13 16:40:15
- Posts: 6
что то вложения не видно поэтому вставлю кусок фала сюда
<?xml version="1.0" ?>
<root TimeCodeFormat="10ms" FrameRate="25.00">
<item type="Video2" block="" date="2008-05-11" time="18:58:03.23" duration="0:01:57.00" fadeIn="0:00:00.10" fadeOut="0:00:00.00" realDuration="0:01:57.00" error="0" />
<item type="Movie" block="" date="2008-05-11" time="19:00:01.24" duration="0:35:10.16" fadeIn="0:00:00.10" file="C:\эфиры\акценты_11_05_08.m2p" fadeOut="0:00:00.00" realDuration="0:35:10.16" error="0" />
<item type="Video1" block="" date="2008-05-11" time="19:35:12.42" duration="0:00:01.00" fadeIn="0:00:00.10" fadeOut="0:00:00.00" realDuration="0:00:01.00" error="0" />
<item type="Video2" block="" date="2008-05-11" time="20:58:02.12" duration="0:01:57.00" fadeIn="0:00:00.10" fadeOut="0:00:00.00"
- Registered: 2007-02-02 21:35:43
- Posts: 422
Всякие дапы удобно через dumpz.org показывтаь. Мне ошибка на мыло пришла - надеюсь, поправил. Там почему-то владельцем на каталог аттачментов root стоял :-)
Отвечаю на вопрос. Проще всего XML разбирать через BeautifulSoup или xml.etree.ElementTree.
А XML у вас невалидный т.к. нет закрывающего тэга </root> и вот item последний тоже без />
- Registered: 2009-05-13 16:40:15
- Posts: 6
item последний закрывается тут просто не поставилось, а финального root действительно нет. Но это так логи пишет сторонний софт. Попробую добавить </root>
- Registered: 2009-05-13 16:40:15
- Posts: 6
поправил исходник
http://dumpz.org/8558/
но теперь новая проблема Которая связана уже более просто с питоном который я изучаю совсем недавно. В исходнике есть список a в нем содержаться словари. добавляю я их с помощью append, но при последующем проходе циклом этого списка не удается извлеч элементы словаря.
а вот это исходный XML файл
http://dumpz.org/8559/
Посмотрите пожалуйста кто-нибудь что я сделал не так в исходнике.
- Registered: 2007-02-02 21:35:43
- Posts: 422
Не совсем понял, что вы там делаете,но вот словарь точно неправильно используете :-)
Вы составляете список из словарей, только вот словарь всегда один и тот же т.к. вы объявили его в самом начале программы. Поэтому когда вы изменяете этот словарь в начале цикла, то меняется содержимой всех вставленных в список словарей. Или, корректнее говоря, вставляются ссылки на один и тот же словарь везде.
Вам нужно создавать словарь каждый раз заново на каждой итерации.
- Registered: 2009-05-13 16:40:15
- Posts: 6
а как это делать?
g.clear()?
или g = {}?
- Registered: 2007-02-02 21:35:43
- Posts: 422
Нужно каждый раз заново создавать объект.
g = {}
- Registered: 2009-05-13 16:40:15
- Posts: 6
Спасибо большое. Теперь все заработало.
Root
»
Базы данных, XML
»
не парсится xml файл