From: kaklis on
Hi i'm doing the following:

def start_element(name, attrs):
print 'Start element:', name, attrs
def end_element(name):
print 'End element:', name
def char_data(data):
print 'Character data:', repr(data)

class SimpleServer(LineReceiver): # Using Twisted

def connectionMade(self):
print 'Connection from: ', self.transport.client

def connectionLost(self, reason):
print self.transport.client, 'Disconnected'

def dataReceived(self, line):
"""Here the XML Parser"""

p = xml.parsers.expat.ParserCreate()

p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
p.Parse(line, 1)

I got the following error
--- <exception caught here> ---
File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
x86_64.egg/twisted/internet/selectreactor.py", line 146, in
_doReadOrWrite
why = getattr(selectable, method)()
File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
x86_64.egg/twisted/internet/tcp.py", line 460, in doRead
return self.protocol.dataReceived(data)
File "stdiodemo.py", line 419, in dataReceived
p.Parse(line, 1)
xml.parsers.expat.ExpatError: syntax error: line 1, column 0

The XML Message is coming in the form of:

POST /test/pcp/Listener HTTP/1.1
user-agent:hjahs
Host:127.0.0.1
Content-Length: 547

<pttv_control_message version="1.0-M4-SNAPSHOT" build="599"
xmlns="http://1270.0.01/pttv">
<cmdReply>
<code>200</code>
<message>OK, found 5 session entries</message>
<sessionList>
<session>
<id>06d4d59bfdfe10139dd874</id>
<subscriberId>82</subscriberId>
<deviceClass>and</deviceClass>
</session>
</sessionList>
</cmdReply>
</pttv_control_message>

Please give me some hints
From: John Bokma on
"kaklis(a)gmail.com" <kaklis(a)gmail.com> writes:

> I got the following error
> --- <exception caught here> ---
> File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
> x86_64.egg/twisted/internet/selectreactor.py", line 146, in
> _doReadOrWrite
> why = getattr(selectable, method)()
> File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
> x86_64.egg/twisted/internet/tcp.py", line 460, in doRead
> return self.protocol.dataReceived(data)
> File "stdiodemo.py", line 419, in dataReceived
> p.Parse(line, 1)
> xml.parsers.expat.ExpatError: syntax error: line 1, column 0
>
>
> The XML Message is coming in the form of:
>
> POST /test/pcp/Listener HTTP/1.1

Does Expat get this line as well? If so, that's the reason why you get
an error at line 1, column 0.

--
John Bokma j3b

Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
From: kaklis on
On Jun 1, 9:51 am, John Bokma <j...(a)castleamber.com> wrote:
> "kak...(a)gmail.com" <kak...(a)gmail.com> writes:
> > I got the following error
> > --- <exception caught here> ---
> >   File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
> > x86_64.egg/twisted/internet/selectreactor.py", line 146, in
> > _doReadOrWrite
> >     why = getattr(selectable, method)()
> >   File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
> > x86_64.egg/twisted/internet/tcp.py", line 460, in doRead
> >     return self.protocol.dataReceived(data)
> >   File "stdiodemo.py", line 419, in dataReceived
> >     p.Parse(line, 1)
> > xml.parsers.expat.ExpatError: syntax error: line 1, column 0
>
> > The XML Message is coming in the form of:
>
> > POST /test/pcp/Listener HTTP/1.1
>
> Does Expat get this line as well? If so, that's the reason why you get
> an error at line 1, column 0.
>
> --
> John Bokma                                                               j3b
>
> Hacking & Hiking in Mexico -  http://johnbokma.com/http://castleamber.com/- Perl & Python Development

Yes but how can i fix it, how to "ignore" the headers and parse only
the XML?
Thanks
From: John Bokma on
"kaklis(a)gmail.com" <kaklis(a)gmail.com> writes:

> On Jun 1, 9:51 am, John Bokma <j...(a)castleamber.com> wrote:
>> "kak...(a)gmail.com" <kak...(a)gmail.com> writes:
>> > I got the following error
>> > --- <exception caught here> ---
>> >   File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
>> > x86_64.egg/twisted/internet/selectreactor.py", line 146, in
>> > _doReadOrWrite
>> >     why = getattr(selectable, method)()
>> >   File "/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-
>> > x86_64.egg/twisted/internet/tcp.py", line 460, in doRead
>> >     return self.protocol.dataReceived(data)
>> >   File "stdiodemo.py", line 419, in dataReceived
>> >     p.Parse(line, 1)
>> > xml.parsers.expat.ExpatError: syntax error: line 1, column 0
>>
>> > The XML Message is coming in the form of:
>>
>> > POST /test/pcp/Listener HTTP/1.1
>>
>> Does Expat get this line as well? If so, that's the reason why you get
>> an error at line 1, column 0.
>
> Yes but how can i fix it, how to "ignore" the headers and parse only
> the XML?

The headers are followed by exactly one empty line, so you you simply
could remove lines up until including this empty line and then hand over
the data to the parser.

--
John Bokma j3b

Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
From: Stefan Behnel on
kaklis(a)gmail.com, 01.06.2010 16:00:
> how can i fix it, how to "ignore" the headers and parse only
> the XML?

Consider reading the answers you got in the last thread that you opened
with exactly this question.

Stefan