trying to use sax for a very basic first xml parser

M

manu

Hi,

I need to parse xml files for the Blender Game Engine. ATM I am trying
to get this script running in the BGE. This is my first script and I
dont have much experience programming...

import xml.sax

class PnmlHandler(xml.sax.ContentHandler):
def __init__(self):
self.inPlace=0

def startElement(self, name, attrs):
if name != "place": return
if attrs.getLength()==0: return

print 'Starting element:', name
print "attrs:", attrs.keys()
id = attrs.get("id", None)
print "id:", id

if name == "place":
self.inPlace=1

def endElement(self, name):
if name == "place":
self.inPlace=0



parser = xml.sax.make_parser()
parser.setContentHandler(PnmlHandler())
parser.parse(open("bpm.pnml","r"))

this works in the IDLE ide. Output:

Starting element: place
attrs: [u'id']
id: p9723441
Starting element: place
attrs: [u'id']
id: p26811937
Starting element: place
attrs: [u'id']
id: p24278422[/code]

but when I copy the script into blender and run it I get:

Code:
Compiled with Python version 2.5.
Checking for installed Python... got it!
Traceback (most recent call last):
  File "Text", line 27, in <module>
  File "H:\Python25\lib\xml\sax\__init__.py", line 93, in make_parser
    raise SAXReaderNotAvailable("No parsers found", None)
xml.sax._exceptions.SAXReaderNotAvailable: No parsers found

Its probably a stupid question but thanks anyway!
 
M

Miki

Hello,
but when I copy the script into blender and run it I get:

Code:
Compiled with Python version 2.5.
Checking for installed Python... got it!
Traceback (most recent call last):
  File "Text", line 27, in <module>
  File "H:\Python25\lib\xml\sax\__init__.py", line 93, in make_parser
    raise SAXReaderNotAvailable("No parsers found", None)
xml.sax._exceptions.SAXReaderNotAvailable: No parsers found
Python is using an external library for SAX (expat IIRC).
I *guess* the Python that comes with Blender don't have this library.
Its probably a stupid question but thanks anyway!
He who asks is a fool for five minutes, but he who does not ask
remains a fool forever.
- Chinese Proverb

HTH,
 
M

manu

Python is using an external library for SAX (expat IIRC).
I *guess* the Python that comes with Blender don't have this library.
I don't know... I didnt install any external libraries for sax. I
think python comes with a standard sax library.
And before I had python installed Blender said at startup:
"Compiled with Python version 2.5.
Checking for installed Python... No installed Python found.
Some scripts will not run. Continuing happily"

After installing Python 2.5.2 it now says:
"Compiled with Python version 2.5.
Checking for installed Python... got it!"
So I think it is using the installed Python.

Could it be that I have to install the same python version Blender was
compiled with?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top