[docs] [issue13784] Documentation of xml.sax.xmlreader: Locator.getLineNumber() and Locator.getColumnNumber()

patrick vrijlandt report at bugs.python.org
Sat Jan 14 13:02:15 CET 2012


New submission from patrick vrijlandt <patrick.vrijlandt at gmail.com>:

Problem:
Locator methods return the location where the event starts, not where it ends.
Locator line numbers start at 1, Locator column numbers can be 0.

Proposal:
Adapt documentation.

>From the docs:
Instances of Locator provide these methods:

Locator.getColumnNumber() 
Return the column number where the current event ends.

Locator.getLineNumber() 
Return the line number where the current event ends

My Test:

import xml.sax

data = b"""<main>
    <sub
        attr="1"
        id="name"
        >
        <subsub />
    </sub>
</main>"""


class MyHandler(xml.sax.handler.ContentHandler):

    def startElement(self, name, attrs):
        if name == "sub":
            print("open", name, self._locator.getLineNumber(), self._locator.getColumnNumber())
            
    def endElement(self, name):
        if name == "sub":
            print("close", name, self._locator.getLineNumber(), self._locator.getColumnNumber())

xml.sax.parseString(data, MyHandler())

Output:

open sub 2 4
close sub 7 4

----------
assignee: docs at python
components: Documentation, XML
messages: 151247
nosy: docs at python, patrick.vrijlandt
priority: normal
severity: normal
status: open
title: Documentation of  xml.sax.xmlreader: Locator.getLineNumber() and Locator.getColumnNumber()
type: behavior
versions: Python 3.2

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue13784>
_______________________________________


More information about the docs mailing list