expat parsing error

Discussion in 'Python' started by kaklis@gmail.com, Jun 1, 2010.

  1. Guest

    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:hjahsjdhaskd asdja d
    Host:127.0.0.1
    Content-Length: 547

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

    Please give me some hints
     
    , Jun 1, 2010
    #1
    1. Advertising

  2. John Bokma Guest

    "" <> 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
     
    John Bokma, Jun 1, 2010
    #2
    1. Advertising

  3. Guest

    On Jun 1, 9:51 am, John Bokma <> wrote:
    > "" <> 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
     
    , Jun 1, 2010
    #3
  4. John Bokma Guest

    "" <> writes:

    > On Jun 1, 9:51 am, John Bokma <> wrote:
    >> "" <> 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
     
    John Bokma, Jun 1, 2010
    #4
  5. , 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
     
    Stefan Behnel, Jun 1, 2010
    #5
  6. Guest

    On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    > , 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


    That's exactly, what i did but something seems to not working with the
    solutions i had, when i changed my implementation from pure Python's
    sockets to twisted library!
    That's the reason i have created a new post!
    Any ideas why this happened?
    Thanks Stefan
     
    , Jun 1, 2010
    #6
  7. John Bokma Guest

    "" <> writes:

    > On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    >> , 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

    >
    > That's exactly, what i did but something seems to not working with the
    > solutions i had, when i changed my implementation from pure Python's
    > sockets to twisted library!
    > That's the reason i have created a new post!
    > Any ideas why this happened?


    As I already explained: if you send your headers as well to any XML
    parser it will choke on those, because the headers are /not/ valid /
    well-formed XML. The solution is to remove the headers from your
    data. As I explained before: headers are followed by one empty
    line. Just remove lines up and until including the empty line, and pass
    the data to any XML parser.

    --
    John Bokma j3b

    Hacking & Hiking in Mexico - http://johnbokma.com/
    http://castleamber.com/ - Perl & Python Development
     
    John Bokma, Jun 1, 2010
    #7
  8. Guest

    On Jun 1, 11:09 am, John Bokma <> wrote:
    > "" <> writes:
    > > On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    > >> , 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

    >
    > > That's exactly, what i did but something seems to not working with the
    > > solutions i had, when i changed my implementation from pure Python's
    > > sockets to twisted library!
    > > That's the reason i have created a new post!
    > > Any ideas why this happened?

    >
    > As I already explained: if you send your headers as well to any XML
    > parser it will choke on those, because the headers are /not/ valid /
    > well-formed XML. The solution is to remove the headers from your
    > data. As I explained before: headers are followed by one empty
    > line. Just remove lines up and until including the empty line, and pass
    > the data to any XML parser.
    >
    > --
    > John Bokma                                                               j3b
    >
    > Hacking & Hiking in Mexico -  http://johnbokma.com/http://castleamber.com/- Perl & Python Development


    Thank you so much i'll try it!
    Antonis
     
    , Jun 1, 2010
    #8
  9. Guest

    On Jun 1, 11:12 am, "" <> wrote:
    > On Jun 1, 11:09 am, John Bokma <> wrote:
    >
    >
    >
    > > "" <> writes:
    > > > On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    > > >> , 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

    >
    > > > That's exactly, what i did but something seems to not working with the
    > > > solutions i had, when i changed my implementation from pure Python's
    > > > sockets to twisted library!
    > > > That's the reason i have created a new post!
    > > > Any ideas why this happened?

    >
    > > As I already explained: if you send your headers as well to any XML
    > > parser it will choke on those, because the headers are /not/ valid /
    > > well-formed XML. The solution is to remove the headers from your
    > > data. As I explained before: headers are followed by one empty
    > > line. Just remove lines up and until including the empty line, and pass
    > > the data to any XML parser.

    >
    > > --
    > > John Bokma                                                               j3b

    >
    > > Hacking & Hiking in Mexico -  http://johnbokma.com/http://castleamber..com/-Perl & Python Development

    >
    > Thank you so much i'll try it!
    > Antonis


    Dear John can you provide me a simple working solution?
    I don't seem to get it
     
    , Jun 1, 2010
    #9
  10. John Machin Guest

    On Jun 2, 1:57 am, "" <> wrote:
    > On Jun 1, 11:12 am, "" <> wrote:
    >
    >
    >
    > > On Jun 1, 11:09 am, John Bokma <> wrote:

    >
    > > > "" <> writes:
    > > > > On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    > > > >> , 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

    >
    > > > > That's exactly, what i did but something seems to not working with the
    > > > > solutions i had, when i changed my implementation from pure Python's
    > > > > sockets to twisted library!
    > > > > That's the reason i have created a new post!
    > > > > Any ideas why this happened?

    >
    > > > As I already explained: if you send your headers as well to any XML
    > > > parser it will choke on those, because the headers are /not/ valid /
    > > > well-formed XML. The solution is to remove the headers from your
    > > > data. As I explained before: headers are followed by one empty
    > > > line. Just remove lines up and until including the empty line, and pass
    > > > the data to any XML parser.

    >
    > > > --
    > > > John Bokma                                                               j3b

    >
    > > > Hacking & Hiking in Mexico -  http://johnbokma.com/http://castleamber.com/-Perl& Python Development

    >
    > > Thank you so much i'll try it!
    > > Antonis

    >
    > Dear John can you provide me a simple working solution?
    > I don't seem to get it


    You're not wrong. Trysomething like this:

    rubbish1, rubbish2, xml = your_guff.partition('\n\n')
     
    John Machin, Jun 2, 2010
    #10
  11. Guest

    On 2 Éïýí, 03:47, John Machin <> wrote:
    > On Jun 2, 1:57 am, "" <> wrote:
    >
    >
    >
    >
    >
    > > On Jun 1, 11:12 am, "" <> wrote:

    >
    > > > On Jun 1, 11:09 am, John Bokma <> wrote:

    >
    > > > > "" <> writes:
    > > > > > On Jun 1, 10:34 am, Stefan Behnel <> wrote:
    > > > > >> , 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

    >
    > > > > > That's exactly, what i did but something seems to not working with the
    > > > > > solutions i had, when i changed my implementation from pure Python's
    > > > > > sockets to twisted library!
    > > > > > That's the reason i have created a new post!
    > > > > > Any ideas why this happened?

    >
    > > > > As I already explained: if you send your headers as well to any XML
    > > > > parser it will choke on those, because the headers are /not/ valid /
    > > > > well-formed XML. The solution is to remove the headers from your
    > > > > data. As I explained before: headers are followed by one empty
    > > > > line. Just remove lines up and until including the empty line, and pass
    > > > > the data to any XML parser.

    >
    > > > > --
    > > > > John Bokma                                                               j3b

    >
    > > > > Hacking & Hiking in Mexico -  http://johnbokma.com/http://castleamber.com/-Perl&Python Development

    >
    > > > Thank you so much i'll try it!
    > > > Antonis

    >
    > > Dear John can you provide me a simple working solution?
    > > I don't seem to get it

    >
    > You're not wrong. Trysomething like this:
    >
    > rubbish1, rubbish2, xml = your_guff.partition('\n\n')


    Ok thanks a lot!
    Antonis
     
    , Jun 2, 2010
    #11
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Fabian Kr?ger
    Replies:
    0
    Views:
    412
    Fabian Kr?ger
    Nov 19, 2003
  2. Bjoern Hoehrmann

    parsing XML with 'expat'

    Bjoern Hoehrmann, Aug 20, 2007, in forum: XML
    Replies:
    2
    Views:
    611
    Roman Mashak
    Aug 20, 2007
  3. sharan
    Replies:
    1
    Views:
    723
    Pavel Lepin
    Oct 26, 2007
  4. aha
    Replies:
    2
    Views:
    497
    Stefan Behnel
    Jan 23, 2009
  5. expat parsing error

    , Jun 1, 2010, in forum: Python
    Replies:
    0
    Views:
    285
Loading...

Share This Page